2012 素数判定

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


代码:

#include<stdio.h>
#include<math.h>
int main()
{
	int x,y,i,j,k,flag,c,m;
	while(scanf("%d%d",&x,&y))
	{
		flag = c = 0;
		if(x==0&&y==0)
			break;
		for(i = x;i <= y;i ++)
		{
			m = i*i+i+41;
			k = sqrt(m);
			for(j = 2;j <= k;j ++)
			{
				if(m % j == 0)
					flag = 1;
			}
			if(flag == 1)
			{
				printf("Sorry\n");
				c= 1;
				break;
			}
		}
		if(c == 0)
			printf("OK\n");
	}
}


收藏