#include "stdio.h"
int main()
{
int x,y,n,j,s;
while( scanf("%d%d",&x,&y)!=EOF)
{
if( x==0 && y==0 )
break;
else {
for( n=x; n<=y; n++ )
{
s=n*n+n+41;
for( j=2; j<=s/2; j++ )
{
if( s%j==0 )
{
printf("Sorry\n");
break;
}
}
}
}
printf("OK\n");
}
}
读入两个数x,y, 判断谁是素数,不输出素数吗?判断x,y之间是否有素数?
先不管你这些代码是要实现什么效果的,通不过是什么意思?
可能还需要判断,x,y的范围。下面可以加快判断速度。
#include "stdio.h"
int main()
{
int x,y,n,j,s;
while( scanf("%d%d",&x,&y)!=EOF)
{
if( x==0 && y==0 )
break;
else {
for( n=x; n<=y; n++ )
{
s=n*n+n+41;
for( j=2; j<=s/2; j++ )
{
if( s%j==0 )
{
printf("Sorry\n");
n=y+1; //修改,退出外层循环
break;
}
}
}
}
printf("OK\n");
}
}
可能还需要判断,x,y的范围。下面可以加快判断速度。
#include "stdio.h"
int main()
{
int x,y,n,j,s;
while( scanf("%d%d",&x,&y)!=EOF)
{
if( x==0 && y==0 )
break;
else {
for( n=x; n<=y; n++ )
{
s=n*n+n+41;
for( j=2; j<=s/2; j++ )
{
if( s%j==0 )
{
printf("Sorry\n");
n=y+1; //修改,退出外层循环
break;
}
}
}
}
printf("OK\n");
}
}
简单看了一下,可能有两个问题:
1.如果一组数据中s有多个不是素数的情况,可能输出多次Sorry
2.可能每次接受数据都输出OK。(同时之前可能输出过Sorry)