从2到x-1测试是否可以整除
int isPrime(int x); int main(int argc, char **argv) { 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) ret=0; for(i=2;i<x;i++){ if(x%i==0){ ret=0; break; } } return ret; }
●对于n要循环 n-1遍
去掉偶数后,从3到x-1,每次加2
int isPrime(int x) { int ret=1; int i; if(x==1||(x%2==0&&x!=2)) ret=0; for(i=3;i<x;i+=2){ if(x%i==0){ ret=0; break; } } return ret; }
●如果x是偶数,立刻
●当n很大时,循环n/2 遍
无须到x-1,到sqrt(x)就够了
判断是否能被已知的且<x的素数整除