杭电ACM 2012题 测试结果是对的 但是交上去就是WA

#include<iostream>usingnamespacestd;intmain(){intx,y,z,i,j,a,b,s;while(cin>>x>>y){a=0... #include <iostream>

using namespace std;

int main()
{
int x,y,z,i,j,a,b,s;
while(cin>>x>>y)
{
a=0;
if(x==0&&y==0)
{
break;
}
if(x>y)
{
z=x;
x=y;
y=z;
}
for(i=x; i<=y; i++)
{
s=i*i+i+41;
for(j=2; j<=s; j++)
{
if(j==s)
{
a++;
break;
}
if(s%j==0)
{
a=0;
break;
}
}
}
b=y-x+1;
if(a==b)
{
cout<<"OK"<<endl;
}
if(a==0)
{
cout<<"Sorry"<<endl;
}
}
return 0;
}

不知道错在哪里了,求大神指点一下,谢谢
展开
 我来答
LennyAscetic
2014-05-07 · TA获得超过1111个赞
知道小有建树答主
回答量:545
采纳率:0%
帮助的人:878万
展开全部
想得有点过于复杂了 代码可更为简洁
判断成非质数后break仅退出一重循环 最终结束时a不一定是0
可以再想想 相信思路不难理清
只需将倒数第七行的if(a==0)改成else即可通过
亲测
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式