using namespace std;
const int SIZE = 1e7;
int prime[SIZE];
bool is_prime[SIZE];
int slove(int n)
{
int p = 0;
for(int i = 0; i <= n; i++)
is_prime[i] = true;
is_prime[0] = is_prime[1] = false;
for(int i = 2; i <= n; i++)
{
if(is_prime[i])
{
prime[p++] = i;
for(int j = 2 * i; j <= n; j += i)
is_prime[j] = false;
}
}
return p;
}
int main()
{
int n;
while(cin >> n)
{
int res = slove(n);
cout << res << endl;
for(int i = 0; i < res; i++)
cout << prime[i] << endl;
}
}
埃氏筛法 2018-2-11
最新推荐文章于 2022-04-07 18:49:00 发布