首先介绍欧拉筛:
//欧拉筛是通过最小质因子来筛质数的. #include <bits/stdc++.h> using namespace std; const int N=1e6+5; bool st[N]; int prime[N]; int main() { int n; cin>>n;int cnt=0; for(int i=2;i<=n;i++) { if(!st[i]) prime[cnt++]=i; for(int j=0;prime[j]*i<=n;j++) { st[prime[j]*i]=true; if(i%prime[j]==0) break; } } for(int i=0;i<cnt;i++) { printf("%d ",prime[i]); }puts(""); return 0; }