关于素数判定,请教各位
#include<stdio.h>#include<stdlib.h>
#include<math.h>
int main(void)
{
int a=0,i=0;
scanf("%d",&a);
if(a%2==0&&a!=2){
printf("NO");
system("pause");
return 0;
}
for(i=2;i<sqrt(a)+0.5;i=i+1)/*这行中把判断循环条件的0.5去掉,onlinejudge只能打90,有一个情况显示wronganswer*/
if(a%i==0)
{
printf("NO");
system("pause");
return 0;
}
printf("YES");
system("pause");
return 0;
}
我觉得是不是浮点数精度问题,请大家看看,帮忙指点迷津