中易网

ACM中的一题 找素数

答案:3  悬赏:0  
解决时间 2021-01-16 20:55
  • 提问者网友:疯子也有疯子的情调
  • 2021-01-16 13:40
ACM中的一题 找素数
最佳答案
  • 二级知识专家网友:duile
  • 2021-01-16 14:33
看题时发现:当x=0,y=0时,表示输入结束
汗!!!
因而
else if(x==0&&y==0){
printf("\n");
break;//加个break,跳出while
}
如果还wrong answer的话给我题目网址
全部回答
  • 1楼网友:未来江山和你
  • 2021-01-16 16:06
#include <stdio.h>
int main(void)
{
int x,y,i,j,k,sum,t;
while(scanf("%d%d",&x,&y)!=EOF)
{
sum=0;
if(x==0&&y==0) break;
for(i=x;i<=y;i++)
{
t=i*i+i+41;
k=1;
for(j=2;j*j<=t;j++)
{
if(t%j==0)
{
k=0;
break;
}
}
if(k)
sum++;
}
if(sum==y-x+1)
printf("OK\n");
else
printf("Sorry\n");
}
return 0;
}
  • 2楼网友:空山清雨
  • 2021-01-16 16:01
for(j=2;j<y;j++) 
为什么你认为检查到y这么大就足够了?
比方说当y=40的时候, 结果等于41*41
追问:我认为判断一个n是否为素数 不是从2和n-1之间判断能否被他整除么
那么应该检查到多大合适
追答:判断n是否为素数,如果从2到n-1一直判断过来是不是能被它整除那是够了
现在你要判断 y^2+y +41是不是素数, 按这个原则应该判断到y^2+y+40为止而不是判断到y-1为止。 尤其当y是负数的时候你这个根本就不进行任何判断了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息