Problem Description
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。
 

 

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

 

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

 

Sample Input
0 1
0 0
 

 

Sample Output
OK
 
素数判定记得开根号可以节省时间
 
 1 #include <iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 
 5 using namespace std;
 6 
 7 bool prime(int num)
 8 {
 9     if(num==0||num==1)
10         return false;
11     else if(num==2||num==3)
12         return true;
13     else
14     {
15         for(int i=3;i<sqrt((double)num)+1;i++)
16             if(num%i==0)
17             return false;
18     }
19     return true;
20 }
21 
22 int main()
23 {
24     int x,y,i,tmp,flag;
25     while(~scanf("%d%d",&x,&y)&&(x+y))
26     {
27         flag=1;
28         for(i=x;i<=y;i++)
29         {
30             tmp=(i*i)+i+41 ;
31             if(!prime(tmp))
32             {
33                 flag=0;
34                 break;
35             }
36         }
37         if(flag==1)
38             printf("OK\n");
39         else
40             printf("Sorry\n");
41 
42     }
43     return 0;
44 }