有关c如何判断素数的问题


#include<stdio.h>
void main()
{
    int n;
    int m=0;
    scanf_s("%d", &n);
    int i = n-1;
    for (;i > 1;i--)
    {
        if (n % i == 0)
        {
            m++;
        }
    }
    if (m == 1)
        {
            printf("不是素数");
        }
    else
        {
            printf("是素数");
        }
    
}

当我输入10的时候会判断素数,输入3和5都会判断是素数,我是哪里写错了呢

把 m==1 改成 m>0 就行了。 或者 在m++ 这句后面加上 break
因为n % i == 0 这句 ,例如10 在i=2 ,5的时候都是执行了,m=2,你下面判断==1,肯定是不匹配了