相对于第二种,我们需要判断到这个数减一个数,其实没必要,我们判断到这个数的平方根就可以了,如果平方根都不能被整除.
#include <stdio.h>
#include <math.h>
int isPrime(int x);
int main(void)
{
int x;
scanf("%d",&x);
if(isPrime(x)){
printf("%d是素数\n",x);
}else{
printf("%d不是素数\n",x);
}
return 0;
}
int isPrime(int x)
{
int ret=1;
int i;
if(x==1 || (x%2 == 0 && x!=2)) {
ret = 0;
}
for(i=3;i<=sqrt(x);i++){
if(x%i == 0){
ret = 0;
break;
}
}
return ret;
}
除,就不会是素数了,参考第四,五种方法.