题目描述:
输出1~N的所有质数。
样例输入:
5
样例输出:
2 3 5
数据范围:
2<=N<=1000000
#include<iostream>
using namespace std;
int prime[1000000];
bool f[1000000];
int main(){
int n,cnt=0;cin >>n;
for (int i=0;i<=n;++i) f[i]=true;
for (int i=2;i<=n;++i){
if (f[i]){prime[cnt]=i;++cnt;}
for (int j=0;j<=cnt&&i*prime[j]<=n;++j){
f[i*prime[j]]=false;
if (i%prime[j]==0) break;
}
}
for (int i=0;i<cnt;++i) cout<<prime[i]<<' ';
return 0;
}