素数判定
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 68870 Accepted Submission(s): 23862
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
Author
lcy
解题报告:
当输入都为0时,要写成x==0 && y==0,不要写成x==y==0
1 #include<stdio.h> 2 #include<math.h> 3 int is_prime(int temp) 4 { 5 int m = (int)sqrt(double(temp)); 6 for(int i = 2; i <= m; i++) 7 { 8 if(temp % i == 0) 9 return 0; 10 } 11 return 1; 12 } 13 int main() 14 { 15 int x, y, temp, i; 16 while(scanf("%d%d", &x, &y) == 2) 17 { 18 if(x == 0&& y == 0) 19 continue; 20 for(i = x; i <= y; i++) 21 { 22 temp = i*i+i+41; 23 if(!is_prime(temp)) 24 break; 25 } 26 if(i == y+1) 27 printf("OK "); 28 else 29 printf("Sorry "); 30 } 31 return 0; 32 }