给定整数 n, 请问 n 以内有多少个素数?
输入
- 输入为一个整数 n
- 1≤n≤106
输出
- 输出一个整数表示 n 以内有多少个素数
样例 1
输入
1000000
输出
78498
#include<bits/stdc++.h>
using namespace std;
int Prime[(int)1e6+5];
void pre_prime(int x)
{
Prime[1]=1;
for(int i=2;i<=sqrt(x);i++)
{
if(Prime[i]==0)
for(int j=i*i;j<=x;j+=i)
Prime[j]=1;
}
}
int main()
{
int n;
while(cin>>n)
{
pre_prime(n);
int count=0;
for(int i=1;i<=n;i++)
if(Prime[i]==0)
count++;
cout<<count<<endl;
}
}
参考: