判断素数
int a;
scanf("%d",&a);
int b=2;
int c=1;
while(a>b){
b++;
if(a%b==0){
printf("%d\n",b);
c=0;
printf("c=%d\n",c);
} }
printf("%d\n",c);
if(c==1)
{
printf("是素数\n");
}else{
printf("不是素数\n");
}
为什莫输入素数时
当b=a时
最后还是进入while
导致c=0
b=a时没有进入while,应该先进入while,b加1之后才等于的a。
所以你得将b++放在if语句的后面
if(a%b==0){
printf("%d\n",b);
c=0;
b++;
首先,b=a是不会进入while的,已经测试过了
其次,while中b++的位置有问题,先对b++会导致判断结果不准确,修改如下
int a;
scanf("%d",&a);
int b = 2;
int c = 1;
while (a > b) {
if (a%b++ == 0) {
printf("%d\n",b);
c=0;
printf("c=%d\n",c)
}
}
printf("%d\n",c);
if (c==1) {
printf("是素数\n");
} else {
printf("不是素数\n");
}