#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main(int argc, char** argv) //埃式筛选法
{
bool ans[50005];
int n,i,j,num=0;
memset(ans,true,sizeof(ans));
ans[0]=ans[1]=false;//标记两个特殊的值
cin>>n;
for(i=2;i<=n;i++)//将2,3...的倍数剔除
{
for(j=2;j*i<=n;j++)
if(ans[i*j]==true)
{
ans[j*i]=false;
}
}
for(i=0;i<=n;i++)
if(ans[i]==true)
num++;
cout<<num;
return 0;
}
洛谷 B2128 素数个数
最新推荐文章于 2024-09-16 17:46:36 发布