各位请看看要输大于2的数,判断是否为素数这错哪了

#include<stdio.h>
int main()
{
int num,i;
num=0;
scanf("%d",&num);
for(;num<2;)
{
printf("error");
printf("put new num");
scanf("%d",&num);
}
for(i=2;i<=num;++i)
{
if(i%num==0)
{
break;
printf("NO");
}
else
{
break;
printf("YES");
}
}
return 0;
}

for(i=2;i<=num;++i)
把i<=num改成i<num
如果i=num,那num%i肯定是0 啊,你不就没有素数了么

错误在代码中标注了,代码修改如下:

#include<stdio.h>
int main()
{
    int num,i;
    num=0;
    scanf("%d",&num);
    for(;num<2;)
    {
        printf("error");
        printf("put new num");
        scanf("%d",&num);
    }
    for(i=2;i<num;++i) //不能是i <= num
    {
        if(num%i==0) //这里是num%i,不是i%num
        {
            break;
            printf("NO");
        }
    }
    //在这里输出yes
    if(i == num)
        printf("YES");
    return 0;
}