判断一个数是否为素数
#include<stdio.h> #include<math.h> int isSu(int x) { int i; int len; if(x<=1) return 0; // (int)sqrt(x)+1 注意这里要先强制转换为int,否则double // 转换成int,由高类型向低类型转化会发生错误。 // 计算枚举的上届,为防止double值带来的精度损失,所以采取根号值取整 // 之后再加1,宁愿多枚举一个数字,也不能漏掉 len = (int)sqrt(x)+1; for(i=2;i<len;i++) { if(x%i==0) return 0; } return 1; } int main() { int n; while(scanf("%d",&n)!=-1) { if(isSu(n)) puts("yes"); else puts("no"); } return 0; }
判断一个数是否为素数