素数定理 nefu 117
2015-11-19 16:06
246 查看
素数定理:
随着x的增长,P(x) ≈x/ln(x) ,P(x)表示(1,x)内的素数的个数。
这个定理,说明在1-x中,当x大到一定程度时,素数分布的概率为ln(x)
竟然还有一道题目。
随着x的增长,P(x) ≈x/ln(x) ,P(x)表示(1,x)内的素数的个数。
这个定理,说明在1-x中,当x大到一定程度时,素数分布的概率为ln(x)
竟然还有一道题目。
素数个数的位数 | |||
| |||
description | |||
小明是一个聪明的孩子,对数论有着很浓烈的兴趣。他发现求1到正整数10 n 之间有多少个素数是一个很难的问题,该问题的难以决定于n 值的大小。现在的问题是,告诉你n的值,让你帮助小明计算小于10 n 的素数的个数值共有多少位? | |||
input | |||
输入数据有若干组,每组数据包含1个整数n(1 < n < 1000000000),若遇到EOF则处理结束。 | |||
output | |||
对应每组数据,将小于10 n 的素数的个数值的位数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。 | |||
sample_input | |||
3 7 | |||
sample_output | |||
3 6 | |||
hint | |||
素数定理 |
#include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> using namespace std; #define E 2.718281828 int main() { int n; while( scanf("%d",&n)!=EOF ) { double tmp=n-log10( (double)n/log10(E) ); int wei=(int)(tmp); double other=tmp-wei; if(other>1e-10) { wei+=1; } printf("%d\n",wei); } return 0; }
相关文章推荐
- 自定义视图引擎,实现MVC主题快速切换
- oracle sql 将字符串转换成多行
- windows server 2008 r2 每隔一段时间自动关机
- windows server 2008 r2 每隔一段时间自动关机
- linux和windows的异同
- 第2章 相关基础知识
- 整数中的1(二)
- Java彻底解决前端传中文到后台乱码问题的代码
- XenServer三类快照
- Ajax应用常见的HTTP ContentType设置
- [leetcode] Additive Number
- tabs and pager
- 关于Java概述(参考官方文档)
- 蓝牙低功耗(Bluetooth Low Energy)
- <the hacker guide to python>读书笔记
- iOS 和 Android 设计理念的演变
- Spring 注解 @Resource和@Autowired
- MAC 下用 brew 搭建 PHP 开发环境
- python signal模块
- Leetcode: Sliding Window Maximum