线性筛质数
程序员文章站
2022-05-12 15:07:15
...
线性筛质数
#include<bits/stdc++.h>
#define maxn 100005
using namespace std;
int n,m;
int prime[maxn],v[maxn];
inline void primes(int n)
{
memset(v,0,sizeof(v));
m = 0;
for(int i=2;i<=n;i++)
{
if(v[i]==0)
{
v[i] = i;
prime[++m] = i;
}
for(int j=1;j<=m;j++)
{
if(prime[j]>v[i] || prime[j]>n/i) break;
v[i*prime[j]] = prime[j];
}
}
}
int main()
{
cin>>n;
primes(n);
for(int i=1;i<=m;i++) cout<<prime[i]<<endl;
return 0;
}