素数判定(杭电2012)

Problem Description
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x
 

Input
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。
 

Output
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。
 

Sample Input
 
   
0 1 0 0
 

Sample Output
 
   
OK
#include int str[3000]={1,1,0}; int asd(int x) {     return x*x+x+41; } int main() {     int i,j;     for(i=2;i*i<3000;i++)     {         if(!str[i])         {             for(j=i+i;j<3000;j+=i)             str[j]=1;         }     }     int m,n,k1,k2,l,t;     while(scanf("%d %d",&m,&n)&&(m||n))     {         int l=0;         for(i=m;i<=n;i++)         {             if(str[asd(i)])             {                 l=1;             }         }         if(l==0)         printf("OK\n");         if(l==1)         printf("Sorry\n");     }     return 0; }                

你可能感兴趣的:(素数判定(杭电2012))