#include<iostream>
using namespace std;
const int N = 1e6 + 10;
int prime[N];
int cnt;
bool st[N];
void is_prime(int x){
for(int i = 2; i <= x; i ++ ){
if(!st[i]){
st[i] = true;
prime[cnt ++ ] = i;
}
for(int j = 0; j < cnt && prime[j] * i <= x; j ++ ){
st[prime[j] * i] = true;
if(i % prime[j] == 0) break;//成立时,prime[j]一定是i的最小质因子
}
}
}
int main()
{
int n;
cin>>n;
is_prime(n);
cout<<cnt<<endl;
return 0;
}
欧拉筛/线性筛 模板
最新推荐文章于 2024-07-23 18:35:33 发布