求 [1,n]的所有素数
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<string>
#include<queue>
#include<vector>
using namespace std;
#define inf 0x3f3f3f3f3f;
typedef long long ll;
#define maxn 1000000
bool isPrime[maxn + 1];
void eratos(int n)
{
int i, j;
isPrime[0] = isPrime[1] = false;
for (i = 2; i <= n; ++i)
isPrime[i] = true;
for (i = 2; i * i <= n; ++i)
if (isPrime[i])
{
for (j = i * i; j <= n; j += i)
isPrime[j] = false;
}
}
int main()
{
int n; cin >> n;
eratos(n);
for (int i = 0; i <= n; i++)
{
if (isPrime[i] != 0)
cout << i << " ";
}
}