[板子]线性筛
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
#define maxn 10000005
using namespace std;
int v[maxn],prime[maxn];
int n,tot;
void primes(int x){
memset(v,0,sizeof(v));
tot=0;
for(int i=2;i<=n;++i){
if(!v[i]){
v[i]=i;
++tot;
prime[tot]=i;
}
for(int j=1;j<=tot;++j){
if(prime[j]>v[i] || prime[j]>n/i) break;
v[i*prime[j]]=prime[j];
}
}
return;
}
int main(){
scanf("%d",&n);
primes(n);
for(int i=1;i<=tot;++i){
printf("%d ",prime[i]);
}
printf("\n");
return 0;
}
posted on 2018-11-08 08:25 theOldChun 阅读(77) 评论(0) 收藏 举报
浙公网安备 33010602011771号