NEFU_117素数个数的位数
题目传送门:点击打开链接
|
|||
description |
|||
小明是一个聪明的孩子,对数论有着很浓烈的兴趣。 他发现求1到正整数10n 之间有多少个素数是一个很难的问题,该问题的难以决定于n 值的大小。现在的问题是,告诉你n的值,让你帮助小明计算小于10n的素数的个数值共有多少位? |
|||
input |
|||
输入数据有若干组,每组数据包含1个整数n(1 < n < 1000000000),若遇到EOF则处理结束。 |
|||
output |
|||
对应每组数据,将小于10n 的素数的个数值的位数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。 | |||
sample_input |
|||
3 7 |
|||
sample_output |
|||
3 6 |
|||
hint |
|||
素数定理 |
素数定理:素数有无穷多个,能估计出小于一个正实数x的素数有多少个,并用PI(x)来表示,这就是素数定理。随着x的增长,PI(x)/(x/ln(x)) == 1.
这道题的数据量很大,因为10的n次方很大,会溢出,不能直接运算,该题只是求素数分布值的位数。考虑到使用素数定理,因为n/ln(n)与素数分布值PI(n)随着n值的增大越来越接近,值的位数更不会出现误差,所以直接求n/ln(n)的位数即可。
位数公式得知:[log10(n/ln(n))]+1
#include <iostream>
#include <cmath>
#include <cstring>
#include <string>
#include <cstdio>
#include <cstdlib>
using namespace std;char a[100];int main() {int n;while (cin >> n) {int res = (int) (n - log10(n) - log10(log(10)));//memset(a, 0, sizeof(a));cout << res + 1<< endl;}return 0;
}
转载于:https://www.cnblogs.com/Tovi/p/6194844.html
NEFU_117素数个数的位数相关推荐
- nefu 117 大数素数个数的位数
素数个数的位数 Time Limit 1000ms Memory Limit 65536K description 小明是一个聪明的孩子,对数论有着很浓烈的兴趣.他发现求1到正整数10n 之间有多少个 ...
- nefu 117 素数个数的位数 (素数定理)
题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=117 解题方案: 素数定理:对正实数xx,定义π(x)π(x)为 ...
- 素数的分布(素数定理),求1~10^n 素数个数的位数
素数定理: 素数有无穷多个,能估计出一个小于正实数x的素数有多少个,并用π(x)来表示,这就是素数定理 定理内容: 随着x的增长,π(x)/(x/lnx)=1 具体数据见下表: n ...
- nefu117 素数个数的位数(素数定理)
Description 小明是一个聪明的孩子,对数论有着很浓烈的兴趣. 他发现求1到正整数10n 之间有多少个素数是一个很难的问题,该问题的难以决定于n 值的大小. 现在的问题是,告诉你n的值,让你帮 ...
- nefu117 - 素数个数的位数(素数定理)
Description 小明是一个聪明的孩子,对数论有着很浓烈的兴趣. 他发现求1到正整数10n 之间有多少个素数是一个很难的问题,该问题的难以决定于n 值的大小. 现在的问题是,告诉你n的值,让你帮 ...
- 素数个数求解与素数的判定
1.素数 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数). 对于写代码的人来说,素数比想像中 ...
- POJ 3177 判决素数个数
时间限制: 1000ms 内存限制: 65536kB 描述 输入两个整数X和Y,输出两者之间的素数个数(包括X和Y). 输入 两个整数X和Y,X和Y的大小任意. 输出 输出一个整数,结果可以是0,或 ...
- python acm 素数个数_湘潭大学OJ-1098求区间内素数个数问题
求区间内素数个数问题 题目描述 Description 给定两个非负整数a,b,其中0<= a,b<=1,000,000,请计算这两个数之间有多少个素数.限制:Time Limit : 1 ...
- Java求n以内素数_求0到n之间素数个数的序列(Java)
要求: (1) 找出0-1000之间素数 (2) 设f(n)表示0-n之间的素数个数,计算出当n=0,1,2,3,.....,997时f(n)的值,并写入文件 分析: 首先找素数使用一个效率较高的方法 ...
最新文章
- 1057. Stack (30)
- linux 实验 广技师 进程管理与系统监视,Linux系统管理之进程管理
- 机器学习基础专题:支持向量机SVM
- DevExpress控件使用的一点小问题
- Scala特质可以继承Java类及限制特质的使用
- [JS-BOM]BOM_Location地址栏对象
- 戏耍Transaction,多个连接的Transaction处理(非COM+)
- 【Linux学习】GDB调试器基本命令必知必会(一)
- 结合 live-reload 实现自动刷新
- 网站点赞 评论 回复 数据库设计
- 分区混乱,C盘不是系统盘怎么办?
- 【HW2020漏洞回顾】深信服EDR两大漏洞(转载)
- 运营主管的OKR案例
- 中国剩余定理的五种解法
- ncnn发布20220420版本,让Vulkan神经网络推理得更快
- 四、快速搭建一套现代化的个人独立博客系统,给爱写博客的你(part2 正文)
- 手机淘宝的flexible设计与实现
- ZZULIOJ1086: ASCII码排序(多实例测试)
- 计算机用老毛桃u盘备份系统,如何使用老毛桃winpe系统进行Ghost备份
- 什么是云连接?云学院带你了解华为云连接知识
热门文章
- 关于srand((unsigned)time(NULL))是初始化随机函数种子
- java选择结构二星期几_java4选择结构 二
- SpringBoot四大核心之actuator——程序监控器
- 猜数字游戏(Java)
- 关于在阅读nnUNet代码中的一些小细节的记录(一)
- 基于sigmoid的文本多标签分类模型代码实现
- c++incline函数
- 全新 Veeam Availability Suite 9.5 成为率先全面集成 Windows Server 2016和Hyper-V技术的 可用性解决方案之一...
- dns 主从 windows
- mk-parallel-dump 实验