//埃式筛查
#include<iostream>
#define MAX_N 10000000
using namespace std;
long long prime[MAX_N];
bool is_prime[MAX_N + 1];
int solve(int n)
{
int p = 0;
for(int i = 0; i <= n; i++) is_prime[i] = true;
is_prime[0] = is_prime[1] = false;
for(int i = 2; i <= n; i++)
{
if(is_prime[i])
{
prime[p++] = i;
for(int j = 2 * i; j <=n; j = j + i) is_prime[j] = false;
}
}
return p;
}
int main()
{
int n;
cin>>n;
cout<<solve(n)<<endl;
return 0;
}
埃式筛查
最新推荐文章于 2021-01-26 11:27:46 发布