我这个for循环是不是不太对劲

img


9怎么可能不是质数呢
我试了9,10,11和15,只要除2有余数就显示不是质数,for循环只走了第一步,没有循环(躺)

9 当然不是质数了, 它能整除 3 呀
另外你这逻辑有问题,判是否是质数,可以用如下:

// 返回 1 就是 质数, 0 就不是质数
int prime(int x)
{
    int i;
    int flag = 1;
    for (i = 2; i <= sqrt(x); i++)
    {
        if (x % i == 0)
        {
            flag = 0;
            break;
        }
    }
    return flag;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^