#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
int i;
int isPrime=1;//不是素数
for (i=2;i<x;i++){
if(x%i==0){
isPrime=0;
break;
}
}
if(isPrime==1){
printf("%d是素数\n",x);
}else if(isPrime==0){
printf("%d不是素数\n",x);
}
return 0;
//不能判断0,1不是素数
}
该代码为看完翁恺5.2.1循环控制后的私下练习,因发现不能判断0,1不是素数,故进行了小改动:
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
int i;
int isPrime=1;//是素数
if(x==0||x==1){
isPrime=0;
}
//if(x==1){ 赋值语句的左边应该是变量,不能是表达式。而实际上,这里是一个比较表达式,所以要把赋值号(=)改用关系运算符(==)
//isPrime=0;
//}
if(x!=0||x!=1){
for (i=2;i<x;i++){
if (x%i==0){
isPrime=0;
break;
}
}
}
if (isPrime==1){
printf("%d是素数\n",x);
}else if (isPrime==0){
printf("%d不是素数\n",x);
}
return 0;
}
因为本酷盖觉得两个if语句太过繁琐,所以查阅资料将它简化。
//先前
if(x==0){
isPrime=0;
}
if(x==1){
isPrime=0;
}
//之后
if(x==0||x==1){
isPrime=0;
}