杭电acm2012怎么总是回答错误

#include<stdio.h>intmain(){intend,n,x,y,z,i,b,t;while(scanf("%d%d",&x,&y)!=EOF&&x||y)... #include<stdio.h>
int main()
{
int end, n, x, y, z, i, b, t;
while(scanf("%d%d", &x, &y) != EOF && x || y)
{
b = 0;
if(x>y)
{
int t=x;
x=y;
y=t;
}
for(n = x; n <= y; n++)
{
end = n * n + n + 41;
for(i = 2; i < n/2; i++)
{
z = end % i;
if(z == 0)
break;
}
if(i < n/2)
b++;
}
if(b > 0)
printf("Sorry\n");
else
printf("OK\n");
}
}
展开
 我来答
飨宴_
推荐于2016-06-29 · TA获得超过131个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:103万
展开全部

说明你考虑不周,有些测试用例过不了,素数判定这题有个技巧,就是可以找到规律然后打表。


如果需要源码再往下看,建议先自己想想。







#include <stdio.h>

int main()
{
    int m,n;
    int x[]={
    1,1,1,1,1,1,1,1,1,1,
    1,1,1,1,1,1,1,1,1,1,
    1,1,1,1,1,1,1,1,1,1,
    1,1,1,1,1,1,1,1,1,1,
    1,1,1,1,1,1,1,1,1,1,
    1,1,1,1,1,1,1,1,1,1,
    1,1,1,1,1,1,1,1,1,1,
    1,1,1,1,1,1,1,1,1,0,
    0,1,1,0,1,1,1,1,0,1,
    };
    
    while(scanf("%d %d",&m,&n),m||n)
    {
        for(m+=39,n+=39;x[m]&&m<=n;m++);
            puts(m>n?"OK":"Sorry");
    }return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式