您的位置:首页 > 其它

nefu 117素数个数的位数(位数问题)

2016-07-25 10:00 316 查看
小明是一个聪明的孩子,对数论有着很浓烈的兴趣。
他发现求1到正整数10n 之间有多少个素数是一个很难的问题,该问题的难以决定于n 值的大小。
现在的问题是,告诉你n的值,让你帮助小明计算小于10n的素数的个数值共有多少位?

Input

输入数据有若干组,每组数据包含1个整数n(1 < n < 1000000000),若遇到EOF则处理结束。

Output

对应每组数据,将小于10n 的素数的个数值的位数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。

Sample Input

37

Sample Output

36

Hint

素数定理

分析总结:
<span style="font-size:14px;">首先呢要好好读题,要求的是什么!!!真的要好好读题!其次要求掌握素数定理:定义p(x)是小于x的素数的个数有多少,然后有p(x)/(x/lnx)=1,x越大越趋近于1,然后就是位数问题@@@@,这个问题以前搞过啊要求x的位数就是(int)logx+1呀</span>
<span style="font-size:14px;"></span>
////  main.cpp//  nefu 117 素数个数的位数////  Created by 张嘉韬 on 16/7/25.//  Copyright © 2016年 张嘉韬. All rights reserved.//#include <iostream>#include <cstring>#include <cstdio>#include <cmath>using namespace std;const double e=2.718281828459;int main(int argc, const char * argv[]) {int n;while(scanf("%d",&n)!=EOF){double temp=n/log10(e);temp=log10(temp);temp=n-temp;int r=temp;r=r+1;cout<<r<<endl;}return 0;}
<br /><br />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: