您的位置:首页 > 其它

40026118素数的个数

2015-11-18 17:16 417 查看
40026118素数的个数
试题描述
给定整数 n ,请你统计不超 n 的素数的个数。

输入
仅包含一个正整数 n 。
输出
不超过 n 的素数的个数。
输入示例
11
输出示例
5
其他说明
数据范围:1 <= n <= 10^6 。
样例说明:有 2、3、5、7、11 共 5 个素数。

#include<iostream>
#define LL long long
#define maxn 1000010
using namespace std;
LL read()
{
LL x=0,f=1;
char c=getchar();
while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
while(isdigit(c)){x=x*10+c-'0';c=getchar();}
return x*f;
}
bool prime[maxn];
LL a;
void prime_table()
{
for(int i=2;(LL)i<=a;i++) prime[i]=1;
for(int i=2;(LL)i*i<=a;i++)
if(prime[i]) for(LL j=i*i;j<=a;j+=i) prime[j]=0;
return;
}

int main()
{
a=read();
prime_table();
int cnt=0;
for(int i=2;i<=a;i++)if(prime[i]) cnt++;
printf("%d\n", cnt);
system("pause");
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: