C++ 算法:埃氏筛法求素数
#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++) // (1)
{
if (*(q + i) == 0)
{
*p = i; // (2)
for (j = i * i; j <= *p; j += i) // (3)
{
*(q + j) = 1;
}
}
}
t = 0;
for (i = 2; i <= n; i++)
{
if (*(q + i) == 0) // (4)
{
cout << i << ' ';
t++;
if (t % 10 == 0) // (5)
{
cout << endl;
}
}
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/bUuQ 著作权归作者所有。请勿转载和采集!