#include

using namespace std;

int a[1000001] = {};

int main() { int n, i, j, t, t2; cin >> n; int *q = a; int *p = &t2;

for (i = 2; i <= n; i++)
{
    if (*(q + i) == 0)
    {
        *p = i;
        for (j = i * i; j <= *p; j += i)
        {
            *(q + j) = 1;
        }
    }
}

t = 0;
for (i = 2; i <= n; i++)
{
    if (*(q + i) == 0)
    {
        cout << i << ' '; t++;
        if (t % 10 == 0)
        {
            cout << endl;
        }
    }
}
return 0;

}

C++ 筛素数算法详解:优化代码并输出每行10个素数

原文地址: https://www.cveoy.top/t/topic/bUrQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录