pat乙级 1007 素数对猜想(C++)
题目
让我们定义dn为:dn =pn+1 −pn ,其中pi 是第i个素数。显然有d1 =1,且对于n>1有dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105 ),请计算不超过N的满足猜想的素数对的个数。
分析
首先,需要判断小于N的数哪些是素数;然后用数组存起来;接着,循环访问该数组,用一个变量count记录素数对个数;最后输出count即可。
判断素数两种方法
- 用n除以2~n-1的数,如果余数都不为0,即为素数
- 用n除以2~sqrt(n)的数,如果余数都不为0,即为素数\
方法选择
- 第一种最直接也最简单,但是当数据较大时,花费时间过久
- 第二种需要调用库函数sqrt,需要类型转换,还要注意个别数值能否满足
- 基于效率考虑,选择第2种
AC代码
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{int i,j,n,count=0,count_sushu=0;cin>>n;int *sushu=(int *)malloc(n*sizeof(int));//动态创建n个int大小的内存,sushu指向该块内存首地址。//int sushu[n];//C99标准,旧版本编译器可能不支持/*素数判断方法需从2开始,题目给的N是正整数包含1,再结合素数对的定义,分为两种情况分别判断。*/if(n<=3)//此时素数对个数为0{}else{for(i=2;i<=n;i++){int temp=i;if(temp==2){count_sushu++;sushu[count_sushu-1]=temp;}else{int temp2=(int)sqrt((double)temp)+2;//double转为int类型时,会有精度丢失for(j=2;j<temp2;j++){if(temp%j==0){break;}if(j==temp2-1){count_sushu++;sushu[count_sushu-1]=temp;}}}}}for(i=0;i<count_sushu;i++){if(i+1<count_sushu){if((sushu[i+1]-sushu[i])==2){count++;}}}cout<<count;return 0;
}
有任何问题,欢迎在评论区留言,博主每天都会看的哟!
更多题解
pat 乙级 题解汇总(持续更新)(C++)
pat乙级 1007 素数对猜想(C++)相关推荐
- [PAT乙级]1007 素数对猜想
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数."素数对猜想"认为" ...
- C++ PAT 乙级 1007——素数对猜想
题目详情 让我们定义 dnd_ndn 为 dn=pn+1−pnd_n = p_{n + 1} - p_ndn=pn+1−pn,其中 pip_ipi 是第 i 个素数.显然有 d1=1d_1 ...
- PAT乙级(1007 素数对猜想)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数."素数对猜想"认为" ...
- PAT乙级 1007 素数对猜想
一.题目描述 让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数."素数对猜想" ...
- PAT(乙级) 1007 素数对猜想 (20 分)(C语言)
分析:这道题在数字比较大的时候容易超时,需要更简单的算法,我这里采用了最原始最朴素的算法来处理,为了让所有测试点通过对源代码做了一点点修改 #include<stdio.h> int is ...
- 【PAT】1007. 素数对猜想 (20)
1007. 素数对猜想 (20) 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数."素数对猜想" ...
- C++学习之路 | PTA乙级—— 1007 素数对猜想 (20分)(精简)
1007 素数对猜想 (20分) 让我们定义d n 为:d n =p n+1 −p n ,其中p i 是第i个素数.显然有d 1 =1,且对于n> ...
- PAT 乙级 1007(C++)
PAT 乙级 1007 题目 1007 素数对猜想 (20 分) 让我们定义 d n d_n dn为: d n = p n + 1 − p n d_n =p_{n+1}−p_n dn=pn+1− ...
- PAT-B 1007.素数对猜想
1007. 素数对猜想 让我们定义 $d_n$ 为:$d_n = p_{n+1} - p_n$,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 $d_n$ 是偶数."素数对 ...
最新文章
- 两个小模型就能吊打大模型!北大校友、谷歌华人一作「模型集合」,CNN、Transformer都适用!...
- top---报错terminal is not big enough
- Java 8中stream相关用法
- 编译时MSIL注入--实践Mono Cecil(1)
- 使用Xerte创建简单的在线学习资料的指南
- bzoj2843极地旅行社题解
- oracle 数据库基础配置,Oracle数据库网络服务配置基础、SQL编程详解-Oracle
- Json文件转Map(四)之代码
- 可见面判别算法---深度排序算法
- java我的世界损坏的种子,我的世界:5分钟让你通关游戏的种子,大神用这种子破了世界纪录...
- 《解密家用路由器0day漏洞挖掘技术》学习笔记
- 还在为满意的渐变色发愁吗?10+个网站帮你解决烦恼
- 淘宝/天猫获取商品历史价格信息 API 返回值说明
- python解析xml读取指定属性_python批量修改xml某些内容和属性
- 虚幻3和虚幻4_如何成为虚幻的自动化专家
- ORB_SLAM系列总结
- 桌上有一空盘,最多允许存放两只水果,爸爸只向盘中放一个苹果,妈妈只向盘中放一个桔子,两个儿子专等吃盘中的桔子,两个女儿专等吃苹果。用P、V操作实现爸爸、妈妈、儿子、女儿四个并发进程的同步。
- starting to launch local task to process map join maximum memory =1029701632 的原因
- 微软服务器的根目录在哪里,如何:查找 Web 应用程序根目录
- python计算ema_python – 添加一个列(EMA),它是pandas中先前新列值的结果
热门文章
- 土城战役_避免使用FOR –反假战役
- 通过Java 8流使用Oracle AQ
- 睡觉时:新增的Java 8新增功能
- Java 8 Friday:让我们弃用那些旧版库
- 构建器模式:适用于代码,适用于测试
- 接触Jenkins(Hudson)API,第1部分
- OSGi简介–模块化Java
- 在5分钟内在MacOSX Lion中设置JAVA_HOME,MAVEN_HOME,ANT_HOME
- python的setting怎么找_Python的Django框架中settings文件的部署建议
- guid会重复吗_知网查重会查重表格吗