PAT 1007 素数对猜想

PAT乙级 1007 素数对猜想 让我们定义dn​dn​​pn1​​−pn​​,其中pi​​是第i个素数。显然有d1​​=1,且对于n>1有dn​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。 阅读详情

题目描述:

让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n>1有d​n​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

现给定任意正整数N(<10​5​​),请计算不超过N的满足猜想的素数对的个数。

输入格式:

输入在一行给出正整数N。

输出格式:

在一行中输出不超过N的满足猜想的素数对的个数。

输入样例:

20

输出样例:

4

分析:由题目中可以看出,这一对必是素数,且相差为2,所以很自然就想到了,可以先在N的范围求出所有的素数存起来,然后去遍历看哪两个相邻的素数相差为2,让计数自增一,最后输出即可。

所以问题的关键就变成了计算给定n范围内的素数问题了。

一般会想到直接遍历就好了,当然可以实现,但是时间复杂度太高,效率过低。

这里提供一种思路:当你发现2是素数的时候,那么2的倍数,像4,6,8,10等是不是都不可能是素数了?3是素数的时候,那么3的倍数也都不会是素数了,以此类推。你只需要从2开始(因为1不是素数),每遇到一个素数,然后将是其倍数的数全都删去,那么最后数组中就会只剩下是素数的数字了。

此题的代码如下: 

#include<iostream>
using namespace std;
const int maxn=100005;  //所能输入的n的最大范围; 
bool is_prime[maxn];	// 判断是否为素数的数组; 
int c=0;				//记录prime数组的大小; 
int prime[maxn];		//存储所有的素数; 
void set_prime(int n)
{
	for(int i=1;i<=n;i++)
		is_prime[i]=true;
	is_prime[1] = false;//1不属于素数; 
	for(int i=1;i<=n;i++){
		if(is_prime[i]){
			prime[c++]=i;
			for(int j=i;j<=n;j+=i){ //去掉i的倍数数字; 
				is_prime[j]=false;
			}
		}
	}
	
}
int main()
{
	int n,count=0;
	cin >> n;
	set_prime(n);
	for(int i=0;i<c;i++){
		if(prime[i+1]-prime[i]==2&&i+1<n)
		count++;
	}	
	cout << count <<endl;
	return 0;
}

小结:

以前我们遇到的总是简单的判断是不是素数就好了,这道题提升了一点高度,主要考虑的应该是算法复杂度的问题,因为如果不直接筛选素数,每一个数都去判断是不是素数,那么时间复杂度会过高。

 

vue微前端qiankun框架学习到项目实战,基座登录动态菜单及权限控制 技术无关,独立开发,独立部署,增量升级,独立运行,微前端的核心目标是将巨石应用拆解成若干可以自治的松耦合微应用。 阅读详情

相关推荐

python实现ECMS算法

ECMS(Equivalent Consumption Minimization Strategy)算法是一种用于混合动力汽车能量管理系统的优化策略。它通过计算等效油耗来平衡电池电量消耗和燃油消耗,从而优化整体能耗。以下是一个简单的Python实现,用于演示ECMS算法的基本思想。这个实现假设了一个简单的混合动力汽车模型,其中电池电量和燃油消耗是主要的优化目标。

weixin_45570158的博客 923

PAT——1007 素数对猜想

让我们定义dn​为:dn​=pn+1​−pn​,其中pi​是第i个素数。显然有d1​=1,且对于n>1有dn​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(

Jamaple的博客 803

VIVADO中的IP核在MATLAB中仿真

VIVADO中的IP核在MATLAB中仿真项目简述VIVADO建立FFT IP核MATLAB调用FFT IP核 项目简述 我们都会用MATLAB进行算法验证,但是经常会发现如果VIVADO中调用了IP核,那么最终会发现VIVADO与MATLAB之间的数据不可以统一的对应起来。那么,MATLAB验证的效果就会大大下降,那么可不可以想办法将VIVADO中的IP核封装成一个函数在MATLAB中调用呢?答案是可以的。这篇博客主要以FFT的IP核为例讲解封装成一个函数并且成功在MATLAB中调用。 本次实验所使用的软

zhangningning1996的博客 6992

1007 素数对猜想

1007 素数对猜想 (20 分) 题目描述: 让我们定义d​n​​ 为:d​n​​ =P​n+1​​ −P​n​​ ,其中P​i​​ 是第i个素数。显然有d​1​​ =1,且对于n>1有d​n​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<10^5​​ ),请计算不超过N的满足猜想的素数对的个数。 输入格式: 输入在一行给出正整数N。 输出...

花花生的博客 529

告别手动干预:深入浅出LPDDR5的Background ZQ校准与DVFSQ切换避坑指南

本文深入解析LPDDR5的Background ZQ校准与DVFSQ切换技术,帮助工程师实现DRAM阻抗校准的自动化管理。通过详细配置指南和实战案例,揭示如何避免动态电压调节下的模式切换陷阱,提升信号完整性和系统能效。特别适合嵌入式系统和移动终端开发者参考。

weixin_30329623的博客 454

RAP 语义键:让 UUID 世界变得可读、可导航、可校验

RAP 语义键的核心价值与实现要点 语义键(Semantic Key)是 ABAP RAP 模型中连接技术实现与业务体验的关键设计:通过为实体指定一组业务可读的标识字段(如订单号、物料编码等),在保持技术主键(如UUID)不变的同时,显著提升用户界面的可读性和导航体验。 主要优势: 提升UI可读性:Fiori元素会突出显示语义键字段,帮助用户快速识别关键业务数据 改善导航体验:OData URL会使用可读的语义键而非技术ID,便于分享和排查问题 降低沟通成本:业务人员能准确引用有意义的业务标识而非技术ID

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 155

PAT乙级刷题之路1007 素数对猜想 (20分)

1007 素数对猜想 (20分) 让我们定义dn为:dn=p​n+1−p​n,其中p​i是第i个素数。显然有d​1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<10^5 ),请计算不超过N的满足猜想的素数对的个数。 输入格式: 输入在一行给出正整数N。 输出格式: 在一行中输出不超过N的满足猜想的素数对的个数。 输入样例:...

derbi123123的博客 1152

51单片机8×8LED点阵屏动态显示取模汉字+ Proteus仿真

51单片机8×8LED点阵屏动态显示取模汉字+ Proteus仿真 Proteus仿真 取模软件:pctolcd2002 程序代码 #include<reg52.h> unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//行选 unsigned char code tabb[]={0x08,0x49,0x49,0x7F,0x08,0x49,0x49,0x7F};//选列"出" unsigned cha

perseverance51博客 8057

1007 素数对猜想 (注释详解)

让我们定义dn​为:dn​=pn+1​−pn​,其中pi​是第i个素数。显然有d1​=1,且对于n>1有dn​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。

Sapphire的博客 600

YOLOv11数据集增强 | 引入多种数据集增强方法,支持图像和标签同步扩充增强

本文介绍了YOLOv11目标检测中的数据集增强技术,重点解决图像与标注标签同步扩充的关键问题。文章系统分析了三类增强方法:几何变换(翻转、旋转、缩放)、颜色变换(亮度、对比度调整)和高级增强(Mosaic、MixUp),并探讨了其在小样本检测、复杂场景泛化和多方向目标识别等场景的应用价值。针对核心的标签同步问题,提供了基于Python和OpenCV的详细代码实现示例,展示如何对图像进行水平翻转和缩放操作时精确调整YOLO格式边界框坐标。该技术能有效解决训练数据不足和多样性匮乏问题,显著提升模型的泛化性能。

走向CTO的路上... 1514

开源Harness项目DeerFlow 2.0,让智能体几乎能完成任何复杂任务

从提示工程到上下文工程,再到如今的 Harness,这条演进路径的本质是从“教模型如何理解人类”迈向“为模型构建一个可执行、可信赖、可长期运转的数字世界”。 当越来越多像 DeerFlow 2.0 这样的 Super Agent Harness 走向普及,AI 将真正进化为能理解、会规划、可执行、敢交付、长期负责的成熟生产力形态。

技术引领业务创新 520

1007 素数对猜想(C语言)

让我们定义dn​为:dn​=pn+1​−pn​,其中pi​是第i个素数。显然有d1​=1,且对于n>1有dn​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(

m0_72594605的博客 2380

Pdu Router(PduR)模块

1. PduR路由基本功能 2. PduR总线网关功能 3. PduR缓存机制 4. 总结

weixin_43759043的博客 3850

【JAVA】PAT 乙级 1007 素数对猜想

【JAVA】PAT 乙级 1007 素数对猜想 题目链接 让我们定义d​n为:d​n​​ =p​n+1​​ −p​n​​ ,其中p​i​​ 是第i个素数。显然有d ​1​​ =1,且对于n>1有d​n​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<10​5​​),请计算不超过N的满足猜想的素数对的个数。 输入格式: 输入在一行给出正整数N。 ...

TAL_DARIM的博客 263

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

PAT乙级1007 素数对猜想

PAT乙级1007 素数对猜想 让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n&gt;1有d​n​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(&lt;10​5​​),请计算不超过N的满足猜想的素数对的个数。 输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的...

qq_43609741的博客 361

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

PAT考试乙级1007之素数对猜想

PAT考试乙级1005之素数对猜想 题目: 让我们定义d ​n为:d​n=pn+1−pn,其中p​i是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。 输入格式: 输入在一行给出正整数N。 输出格式: 在一行中输出不超过N的满足猜想的素数对的个数。 输入...

a029019的博客 175

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

PAT乙级——1007素数对猜想

题目: 让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数。显然有d​1​​=1,且对于n>1有d​n​​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<10​5​​),请计算不超过N的满足猜想的素数对的个数。 输入格式: 输入在一行给出正整数N。 输出格式: 在一行中输出不超过N的满足猜想的素数对的个数。 ...

编程爱好者的博客 297

PAT刷题之乙级1007 素数对猜想

目录PAT刷题之乙级1006(cpp)题目描述输入格式输出格式输入样例输出样例问题分析运行实现 PAT刷题之乙级1006(cpp) 题目描述        让我们定义dn​为:dn=p​n+1−p​n,其中p​i​​ 是第i个素数。显然有d1​​=1,且对于n>1有d​n是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2...

ThunderF的博客 752

PAT 1007 素数对猜想 (20 分)

本题思路不难,关键在于优化求素数方法,以防超时

每一次AC都是一种感动 237

PAT 乙级 1007(素数对猜想)

PAT 乙级 1007题目要求代码思路 题目要求 让我们定义dnd_ndn​为:dnd_ndn​=pn+1p_{n+1}pn+1​ - pnp_npn​,其中pip_ipi​是第i个素数。显然有d1d_1d1​=1,且对于n>1有dnd_ndn​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<10510^5105),请计算不超过N的满足猜想的素数对...

qq_42865772的博客 266

PAT-1007 素数对猜想 (20分)

** PAT-1007 素数对猜想 (20分) ** 第一次提交: #include<iostream> #include<cmath> using namespace std; //bool p[100002]={false}; int d[100002]={0}; int N;//总个数 int j=0;//记录下标 bool isPrime(int n){//判断是否是素数的函数 for(int i=2;i<=sqrt(n);i++){ if(n%i=

weixin_44115149的博客 183

PAT 乙级题目讲解:1007《素数对猜想》

本文详细讲解了 PAT 乙级 1007 题「素数对猜想」的完整解题过程。题目要求统计不超过 N 的素数对(差值为 2 的相邻素数)个数。文章采用埃拉托色尼筛法高效筛选素数,再通过枚举奇数判断素数对,时间复杂度优化至 O(N log log N)(其中 N ≤ 10⁵)。同时总结了常见易错点(暴力判断超时、枚举边界错误、标记逻辑混淆等),并拓展介绍了孪生素数猜想与更高效的筛法优化方向。

qq_35624947的博客 916

PAT 乙级 1007 素数对猜想 (20 分)

题目:PAT 乙级 1007 素数对猜想 (20 分) 经验总结: 此题可以直接判断i和i+2两个数是否都是素数来解决,但是循环次数需要减二(或者判断条件为i-2和i是否都是素数,这样循环次数就不用减2了)。 刚开始使用此方法解题的时候只对了几个测试点,一直不知道是哪里错了,然后看了下其他AC的代码,也看不出我到底哪里错误了。最后我把AC代码和我的代码通过打表的方式对比查看对于同一个N,统计的...

努力努力再努力 172

【PAT乙级 1007】素数对猜想 C++

让我们定义dn​为:dn​=pn+1​−pn​,其中pi​是第i个素数。显然有d1​=1,且对于n>1有dn​是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。

m0_65154047的博客 416

PAT 乙级 1007 素数对猜想

题目: 让我们定义d​n为:d​n​​ =p​n+1​​ −p​n​​,其中p​i​​ 是第i个素数。显然有d​1​​ =1,且对于n>1有d​n​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N(<10​5​​ ),请计算不超过N的满足猜想的素数对的个数。 输入格式: 输入在一行给出正整数N。 输出格式: 在一行中输出不超过N的满足猜想的素数对的...

碎碎念丶 139
上一篇: PAT 1006 换个格式输出整数
下一篇: PAT 1008 数组元素循环右移问题
白劷
博客等级 码龄9年 74粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值