判断一个数是否为素数
素数是指除了1和它本身,不能被其他整数 整除的 大于1的整数。
从1到n-1取模,等于0不是素数,跳出循环
#include<stdio.h>
int main(){
int n,i;
printf("请输入一个数:");
scanf("%d",&n);
for(i=2;i<=n-1;i++){
if(n%i==0)
break;
}
if(i==n)
printf("%d是素数",n);
else
printf("%d不是素数",n);
return 0;
}
改进——一个数的最大因数就是取它的开方,即sqrt(n)
#include<stdio.h>
#include<math.h>
int isPrime(int n){
if(n==1) return 0;
else if(n==2) return 1;
else if(n<9) return n%2;
else{
int len = sqrt(n);
for(int i=2;i<=len;i++)
if(n%i==0) return 0;
return 1;
}
}
int main(){
int n;
printf("输入一个整数:");
scanf("%d",&n);
if(isPrime(n)) printf("%d是素数",n);
else printf("%d不是素数",n);
return 0;
}