知识点:
素数
(原理)所谓素数即只能被1和本身整除的数,那么毫无疑问,对于一个数n是不是素数,我们可以直接进行判断,即从2~n-1一一进行枚举,如果n都不能被整除,那么说明n就是素数。如果直接暴力判断,需要注意两点:
1、n不能太大
2、只需判断n的根号次
在此我们为了避免运行时间超出限制采用简便方法,将循环结束标记定为sqrt(n).
(例题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2012
题目分析:首先接收x,y范围,依次将范围内的算式结果遍历出来拿来判断。若是某一次判断为是素数则跳出该次循环输出Sorry,否则YES。
题解代码:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int res=0,x=0,y=0,i=0,j=0;
while(scanf("%d%d",&x,&y)){
if(x==0&&y==0){
return 0;
}
for(i=x;i<=y;i++){
res=i*i+i+41;
for(j=2;j<=sqrt(res);j++,j++){
if(res%j==0){
printf("Sorry\n");
break;
}
}
if(j<=sqrt(res)){
break;
}
}
if(i>y){
printf("OK\n");
}
}
return 0;
}