素数判定

素数判定

时间: 1ms        内存:64M

描述:

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

输入:

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

输出:

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

示例输入:

0 1
0 0

示例输出:

OK

提示:

参考答案(内存最优[748]):

#include <stdio.h>
int main(void)
{	
int x,y,i,j,k,sum,t;	
while(scanf("%d%d",&x,&y)!=EOF)	
{		
sum=0;		
if(x==0&&y==0) 
break;		
for(i=x;i<=y;i++)		
{			
t=i*i+i+41;			
k=1;			
for(j=2;j*j<=t;j++)			
{    				
if(t%j==0)				
{					
k=0;					
break;				
}			
}			
if(k)				
sum++;		
}		if(sum==y-x+1)			
printf("OK\n");		
else			
printf("Sorry\n");	}	
return 0;
}

参考答案(时间最优[0]):

#include <stdio.h>
int main(void)
{	
int x,y,i,j,k,sum,t;	
while(scanf("%d%d",&x,&y)!=EOF)	
{		
sum=0;		
if(x==0&&y==0) 
break;		
for(i=x;i<=y;i++)		
{			
t=i*i+i+41;			
k=1;			
for(j=2;j*j<=t;j++)			
{    				
if(t%j==0)				
{					
k=0;					
break;				
}			
}			
if(k)				
sum++;		
}		if(sum==y-x+1)			
printf("OK\n");		
else			
printf("Sorry\n");	}	
return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注