求看一下为什莫不正确(判断一个数是否为素数)

判断素数
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");
}