素数判定(HDU2012)
分析:只能被 1和它本身整除的整数称为素数。在数学中,要判断n是否为素数,通常让n除以2~的每一个整数,如果, 能被 2~的某个整数整除,则说明,不是素数,否则n一定是素数
说白了就是如果在数学中只要这个数字可以被2~根号n摸一下等于零,他就不是素数
这题运用了宏定义一个函数,这需要结合题目去理解,最后的if(i》y)用的非常巧妙
#include<stdio.h>
#include<math.h>
#define function(n) n*n+n+41
int judge(int q)
{if(q%2==0){return 1;}int temp = sqrt(q),i;for(i=3;i<=temp;i+=2){if(q % temp == 0){break;}}return i>temp?0:1;
}
int main()
{int x,y,i;while(~scanf("%d%d",&x,&y)){if(x<y){break;}for( i = x;i<=y;i++){if(judge(function(i))){break;}}}if(i>y){printf("OK\n");}else printf("SORRY\n");return 0;
}