PAT (Basic Level) Practice1007 素数对猜想
1007 素数对猜想
一、题目
让我们定义 dnd_ndn 为 dn=pn+1−pnd_n=p_{n+1}-p_ndn=pn+1−pn,其中 pip_ipi 是第 iii 个素数。显然有 d1=1d_1=1d1=1,且对于 n>1n>1n>1有 dnd_ndn 是偶数。“素数对猜想” 认为 “存在无穷多对相邻且差为2的素数”。
现给定任意正整数N
(<105)(<10^5)(<105),请计算不超过N
的满足猜想的素数对的个数。
二、输入输出
输入格式
输入在一行给出正整数N
。
输出格式
在一行中输出不超过N
的满足猜想的素数对的个数。
三、样例
输入样例
20
输出样例
4
四、题目分析
简单的按照模拟的方法,遍历完所有数值对,对每个数值进行判断,可以解决。但是效率不高,可以进行如下优化:
- 所有的素数对都为奇数,循环步长设为2;
- 最小的素数对为(3,5),循环初始值设为5;
- 无需对同一个数值进行两次素数判断,可以设置两个布尔变量保存上一数值的判断结果。
五、代码
#include <bits/stdc++.h>
using namespace std;
int main()
{int count=0;int n;cin>>n;bool num1=true,num2=true;for(int i=5;i<=n;i=i+2){num2=true;for(int j=2;j<sqrt(i)+1;j++){if(i%j==0){num2=false;break;}}if(num1&&num2)count++;num1=num2;}cout<<count;return 0;
}
六、总结
素数的判断:
for (int j = 2; j < sqrt(i) + 1; j++) {if (i % j == 0){num2 = false;break;} }
循环从
2
开始,到sqrt(i) + 1
,防止浮点误差导致将一些完全平方数(除1和自身以外只含有一个质数因子,如9、25…)判断为素数。
例如i = 9
:
sqrt(i)
为2.99999
,若是只循环至sqrt(i)
,无法对因数3进行判断,因此将9误判为素数。
PAT (Basic Level) Practice1007 素数对猜想相关推荐
- 1001 害死人不偿命的(3n+1)猜想 (15分) PAT (Basic Level) Practice (中文)C语言版
PAT (Basic Level) Practice (中文) 1001 害死人不偿命的(3n+1)猜想 (15分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一 ...
- 卡拉兹(Callatz)猜想,PAT(Basic Level) Practise NO.1001
PAT(Basic Level) Practise NO.1001 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半. 这样 ...
- 【题解】PAT (Basic Level) Practice (中文)
互联网行业的小白,写博客的目的是为了记录自己的学习过程.对自己学习中所犯的错误做一个总结.由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教! PAT Basic Level P ...
- PAT basic level 答案+解题思路+难点 (个人刷题记录)
PAT basic level 使用语言:C++ 仅记录一下自己刷题过程的心得体会 永远保持更新(期待更好的解法) 可能有些题没有(那就是我还没做出来,以后会更的!) 欢迎大家与我讨论交流√ 题目序列 ...
- PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
PAT (Basic Level) Practise (中文)-1025. 反转链表 (25) http://www.patest.cn/contests/pat-b-practise/1025 ...
- PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)
PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20) http://www.patest.cn/contests/pat-b-practise/1034 ...
- 可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决)
可优化-PAT (Basic Level) Practice Python解法 1026 程序运行时间(时间进位/四舍五入Tobe解决) c1, c2 = map(int,input().split( ...
- PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分)
PAT (Basic Level) Practice (中文)1095 解码PAT准考证 (25 分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即T代表顶级:A代表甲级:B代表乙级: 第 ...
- PAT (Basic Level) Practice (中文)1058 选择题 (20 分)
PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 文章目录 PAT (Basic Level) Practice (中文)1058 选择题 (20 分) 题 ...
最新文章
- 多 LDAP 目录服务器的 FileNet P8 系统介绍和配置实例
- Tomcat启动之异常java.lang.IllegalStateException
- 【Python教程】读写ini配置文件的详细操作
- 对话系统(二)-普通神经网络
- NOIP2011 铺地毯
- 纯Javascript实现Windows 8 Metro风格实现
- projecteuler_problem11
- Tableau豆瓣电影数据项目实战练习3
- ES6数组得扩展与对象的扩展
- Redhat、Fedora、CentOS、OEL之间的关系与不同。
- 购买计算机设备计入什么科目,企业购买设备计入什么会计科目?附会计分录
- linux系统python中的列表 || python中的集合
- pycharm遇坑指南(win32gui)
- 如何理解混淆矩阵,以及预测少数类的评估指标?
- 无线网460王者荣耀服务器,王者荣耀:如何解决大批玩家网络460?骨灰级玩家给出了最终方案...
- ev4视频转换为mp4工具使用教程
- LDO和BUCK降压稳压器对比
- 小孩发烧请慎用抗病毒类药物!
- moudle.txt
- 谷歌新系统 fuchsia
热门文章
- diff命令两个服务器文件,LINUX命令diff-文件管理-比较给定的两个文件的不同
- 后端返回list前端如何处理_前端、后端、全栈是什么?薪资前景如何?
- linux php 入侵,入侵linux教程 - 冷漠 ' Blog - Focus on Information Security !
- python selenium安装失败_python:学习selenium遇到的坑
- android socket第三方库,OkSocket 一个Android轻量级Socket通讯框架
- iframe调用父页面方法_5.1 vue中子组件调用父组件的方法,务必理解自定义事件的重要性...
- oracle静态,oracle静态sql和动态sql
- python csv数据所在行_使用python获取csv文本的某行或某列数据的实例
- qt5不能添加新文件_VS2017配置Qt5.9教程
- python大文件去重_python大ip文件排重