我测试过了,这个程序的结果是正确的,但他说我“wrong error”,程序员们能看出哪里错了吗,我写了好多注释,能让你们更好的看明白我的思路。 “最好能帮我修改一下或者写一个程序,谢谢!
”
#include <stdio.h>
#include <math.h>
int main()
{
int x, y, n, count = 0;
while (scanf("%d %d", &x, &y), (x != 0 || y != 0)) //外层循环控制多组输入
{
n = x; //因为下方的(j <= y-x+1)需要作为数据范围的总量,为一个确定的数,因此用n来替代x的值,这样就不会更改数据的总数了
for (int j = 1; j <= (y - x + 1); j++) //次层循环控制在x,y范围内更换数据
{
for (int i = 2; i <= sqrt((n * n) + n + 41); i++) //内层循环判断是否为合数
{
if (((n * n) + n + 41) % i == 0)
{
count++; //若为合数则加1
break; //找到一个因数马上跳出循环
}
}
n++; //n即是x,为第一个数,在次层循环中每一次都要加1
}
if (count == 0) //count = 0说明一个合数都没有
{
printf("OK\n");
}
else
{
printf("Sorry\n");
}
}
return 0;
}