杭电ACM 2012题,帮忙看下哪里错了???

2025-01-02 10:17:06
推荐回答(5个)
回答1:

#include
int main()
{
int x,y,t,i,n,s,p=0;
while (scanf("%d%d",&x,&y),x||y)
{ p=0; //每一次输入都要初始化p
/*if(x<-39) x=-39;
if(y>50) y=50;
if (x>y){t=x;x=y;y=t;} */ //兄弟题目看错了,想错了x和y输入多少是多少,不用限定
for(i=x;i<=y;i++)
{
n=i*i+i+41;
for(s=2;s {
if(n%s==0)
p=p+1;
}
}
if(p==0)
printf("OK\n");
else
printf("Sorry\n");

}
return 0;
}

回答2:

#include
int main()
{
int x,y,t,i,n,s,p=0;
while (scanf("%d%d",&x,&y),x||y)
{
p=0;
if(x>y)
{
t=x;
x=y;
y=t;
}
for(i=x;i<=y;i++)
{
n=i*i+i+41;
for(s=2;s {
if(n%s==0)
p=p+1;
}
if(p) break;
}
if(p==0)
printf("OK\n");
else
printf("Sorry\n");
}
return 0;
}

回答3:

//下面代码已AC
#include
int main()
{
int x, y, t, i, n, s, p;
while (scanf("%d%d", &x, &y))
{
if(x == 0 && y == 0) //x=y=0时 退出程序
break;
// if(x < -39) x = -39; //题目有限制条件,(-39<=x // if(y > 50) y = 50; //可以不添加上去
// if (x > y)
// {
// t = x;
// x = y;
// y = t;
// }
for(p = 1, i = x; i <= y; i++)
{
n = i * i + i + 41;
for(s = 2; s < n; s++)
if(n % s == 0) //非素数,退出for循环
{
p = 0;
break;
}
if(p == 0)
break;
}
if(p)
printf("OK\n");
else
printf("Sorry\n");
}
}
//祝你学习进步,更上一层楼!(*^__^*)

回答4:

333333333

回答5:

不是能够编译过去么?