C/C++语言100题练习计划 97——素数对
名人说:博学之,审问之,慎思之,明辨之,笃行之。——《中庸》
进度:C/C++语言100题练习计划专栏,目前97/100
一、问题呈现
1.问题描述
Problem Description
定义两个相差为 222 的素数称为素数对,如 555 和 7,177,177,17 和 191919 等,要求找出所有两个数均不大于 nnn 的素数对。
2.输入输出
Input
一个正整数 nnn。1≤n≤100001 \le n \le 100001≤n≤10000。
Output
所有小于等于 nnn 的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出 empty
。
3.测试样例
样例1️⃣
Sample Input
10
Sample Output
3 5
5 7
样例2️⃣
Sample Input
100
Sample Output
3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73
样例3️⃣
Sample Input
3
Sample Output
empty
二、源码实现
#include<iostream>
using namespace std;bool isPrime(int x)//判断是否是素数的函数,返回0代表不是素数,返回1代表是素数
{//特断if(x<=1)return 0;if(x==2)return 1;//枚举可能的因数for(int i=2;i*i<=x;i++){//能被整除,存在除了1与自身以外的因数,不是素数if(x%i==0){return 0;//返回0作为标记}}//否则就一定是素数,返回1作为标记return 1;
}int main()
{int n;cin>>n;bool flag=0;//flag代表是否有素数对//i循环到n-2是为了防止另一个数超(i+2)过n的范围for(int i=1;i<=n-2;i++){if(isPrime(i)&&isPrime(i+2))//如果找到素数对{cout<<i<<" "<<i+2<<endl;//输出素数对flag=1;//标记为素数对}}if(!flag)cout<<"empty"<<endl;//没有找到素数对,输出emptyreturn 0;
}
★关于本题思路:
①首先,这道题由于 N 的范围不大,可以使用最简单的方法判断素数。
素数
指除了 1 和它本身以外不再有其他因数的自然数。
那我们可以直接枚举
这个数所输入数字的可能的因数,如果除了 1 和它本身以外还有其他因数,那么它就不是素数了。
②其次,由于因数总是成对出现
的,所以只需要枚举到这个数的算术平方根向下取整就可以了。
对于每一个在 1 到 n−2 之间的整数,如果它自身与它加 2 都是素数,那么它们就是一对
素数对
,将其输出即可。
③对了,不要忘了 1 不是素数, 2 是素数,需要特别判断一下。
明白了这些之后,应该就没啥大问题了,可以尝试编写程序了。
三、测试结果
100
3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73--------------------------------
Process exited after 1.355 seconds with return value 0
请按任意键继续. . .
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ღ( ´・ᴗ・` )比心
C/C++语言100题练习计划 97——素数对相关推荐
- C语言100题练习计划 31——计算两数的和与差(函数实现)
名人说:纸上得来终觉浅,绝知此事要躬行.--陆游 进度:C/C++语言100题练习计划专栏,目前31/100
- C语言100题练习计划 32——猜数字游戏
名人说:纸上得来终觉浅,绝知此事要躬行.--陆游 进度:C/C++语言100题练习计划专栏,目前32/100
- C/C++语言100题练习计划 84——分数线划定(结构体+快排函数)
名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前84/100
- C/C++语言100题练习计划 87——火柴棒等式(枚举实现)
名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前87/100
- C/C++语言100题练习计划 83——背包问题(贪心算法实现)
名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前83/100
- C/C++语言100题练习计划 88——猜数游戏(二分查找实现)
名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前88/100
- C语言100题练习计划 27——字符串替换
名人说:学须志也,才须学也,非学无以广才,非志无以成学.--诸葛亮 进度:C/C++语言100题练习计划专栏,目前27/100
- C/C++语言100题练习计划 98——最长最短单词
名人说:博学之,审问之,慎思之,明辨之,笃行之.--<中庸> 进度:C/C++语言100题练习计划专栏,目前98/100 一.问题呈现 1.问题描述 Problem Description ...
- C/C++语言100题练习计划 82——加勒比海盗船(贪心算法实现)
名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前82/100
最新文章
- R语言包_reshape2
- JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理(八)
- Linux中shell模块的考试,linux下的shell编程要考试了题目这里有可是表示不会 求帮忙...
- 网易云信音视频技术落地提速,读书郎电话手表成行业先锋
- tornado上传图片
- Mysql 索引底层原理
- PHP 学习笔记 - - - 简单方法的使用 (数组)
- html表白照片墙,【原创】【申精】用python去告白 绘制照片墙(自定义格式)
- A. Balanced Substring
- 093-PHP数组比较
- 模块说和神经网络学说_让神经网络解释自己:牛津大学博士小姐姐,用毕业论文揭示“炼丹炉”结构...
- python用时间戳给文件命名规则_关于时间戳:python复制文件但保持原始
- CURL基于某个URL请求需要身份验证
- 举例计算机的发展状况,计算机的发展过程教学设计.doc
- 第14章 学习scikit-learn文档
- 内网穿透小知识|什么是端口映射?端口映射使用操作指南
- abp The value could not be converted to a GUID:
- C++调用Lua出现 unproteted error in call to Lua API错误的发现过程与解决方法
- JS算法笔记---移除元素
- iOS 开发修改app名称(display Name)后实际app名称没有变的情况