题目:http://acm.hdu.edu.cn/showproblem.php?pid=2012
想想应为要测试多组数据,使用素数表还是比较好点
#include <stdio.h>
#include <string.h>
#define SWAP(A,B) {int T;T=A;A=B;B=T;}
bool p[3000];
void prime()
{
memset(p,false,sizeof(p));
for(int i=2;i<3000;i++)
{
if(!p[i])
{
for(int j=2;j*i<3000;j++)
p[j*i]=true;
}
}
}
int main()
{
int x,y,flag;
prime();
while(scanf("%d%d",&x,&y))
{
if(!x&&!y)
break;
if(x>y)
SWAP(x,y);
flag=1;
for(;x<=y;x++)
if(p[x*x+x+41])
{
flag=0;
break;
}
if(flag)
printf("OK\n");
else
printf("Sorry\n");
}
return 0;
}**********************************************
但这一个个数判断也可...
#include <stdio.h>
#include <math.h>
#include <string.h>
#define SWAP(A,B) {int T;T=A;A=B;B=T;}
int main()
{
int x,y,flag,temp;
while(scanf("%d%d",&x,&y))
{
if(!x&&!y)
break;
if(x>y)
SWAP(x,y);
flag=1;
for(;x<=y;x++)
{
temp=x*x+x+41;
for(int i=2;i<=sqrt(temp);i++)
if(temp%i==0)
{
flag=0;
break;
}
}
if(flag)
printf("OK\n");
else
printf("Sorry\n");
}
return 0;
}