1-100之间所有的素数

是真的搞不懂这个了,试数也试的不对,从第一个for开始,i=2,i<=100,然后j=2,j不小于i,退出循环,然后++i,i=3,3<=100,进入第二个for循环,j=2,j小于i满足执行下面的if语句,i%j余数为1,不满足,然后++j,j=3,j不小于i退出循环。
我就是这个思路,是我思路哪里出了问题吗实在是不懂

img


#include<iostream>
using namespace std;
int main()
{    
    int N = 100;

    for (int i = 2; i <= N; ++i)
    {
        int count = 0;
        for (int j = 2; j < i; ++j)
        {
            if (i % j == 0)
            {
                count += 1;
                break;
            }
        }
        if (count == 0)
            printf("%d为质数\n", i);
    }

    return 0;

}

楼主的思路,结果也是正确的

#include<iostream>
using namespace std;
int main()
{    
    int N = 100;

    for (int i = 2; i <= N; ++i)
    {
        int j;
        for (j = 2; j < i; ++j)
        {
            if (i % j == 0)
                break;
            
        }
        if (i == j)
            printf("%d为质数\n", i);
    }

    return 0;

}

img

cankao:
两种方法:

代码没问题啊