输入一个数据判断其是否为素数。
本题也可以用其他循环方法来做,如有疑问可以评论。
代码如下:
#include<stdio.h>
int main(){
int n;
int i=1;
int x=1;
scanf("%d",&n);
while(i<n-1){
i++;
if(n%i==0){
x=0;
}
}
if(x==1){
printf("%d是素数",n);
}else{
printf("%d不是素数",n);
}
return 0;
}
结果示例:
此题关键在于那个循环部分的主体内容,如果我们在里面放置的是printf的输出内容,那么可想而知会根据循环次数多次输出,所以避免此类情况的一个简单办法就是设置一个x=0,在此情况下表明都不是素数的情况即n%i==0,当x=1时,就是出现素数的情况。
此外,那个while(i<n-1)中n-1则是因为在循环中先执行的就是i++,所以假如对13这个素数进行判断,则当i=12时如果是i<n则依然可以进行循环,此时i=13即n本身,所以要写为i<n-1。