合数n分成两个数相乘,一个会<=n/2,一个>=n/2
int sushu(int n){
int flag=1,i;
for(i=2;i<=n/2&&flag==1;i++){
if(n%i==0)
flag=0;
}
return flag;
}
运行结果:
若n不能被2到根号n之间的任一整数整除,则n必为素数
void sushu(int m){
int i;
double k;
k=sqrt((double) m);
for(i=2;i<=k;i++){
if(m%i==0)
break;
}
if(i>k)
printf("%d是素数!\n",m);
else
printf("%d不是素数!\n",m);
}
(这个也可以像上面那样用flag来标记,就不用break了。比较i和k也是可以的)
运行结果:
直接判断从2到n-1是否存在n的因数,不写了