首先了解素数的性质,即素数只能被1和它本身所整除
设计程序:
S1:输入一个n的值
S2:i=2
S3:n被i除,得余数r
S4:如果r=0,表示n能被i整除,则打印"n不是素数",算法结束,否则执行S5
S5:i=i+1
S6:如果i<=n-1,返回S3;否则打印“n是素数”; 算法结束。
int main(){
int n;
scanf("%d",&n);
int i;
for(i=2;i<=n-1;i++){
if(n%i==0){
printf("%d不是素数",n);
return;
}
if(i==n-1) printf("%d是素数",n);
}
return 0;
}
算法改进:
或者判断到n/2,但判断到根号n所需时间更短
int main(){ int n; scanf("%d",&n); int i; for(i=2;i<=n/2;i++){ if(n%i==0){ printf("%d不是素数",n); return; } if(i==n/2) printf("%d是素数",n); } return 0; }