名人说:博学之,审问之,慎思之,明辨之,笃行之。——《中庸》
进度: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——素数对相关推荐

  1. C语言100题练习计划 31——计算两数的和与差(函数实现)

    名人说:纸上得来终觉浅,绝知此事要躬行.--陆游 进度:C/C++语言100题练习计划专栏,目前31/100

  2. C语言100题练习计划 32——猜数字游戏

    名人说:纸上得来终觉浅,绝知此事要躬行.--陆游 进度:C/C++语言100题练习计划专栏,目前32/100

  3. C/C++语言100题练习计划 84——分数线划定(结构体+快排函数)

    名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前84/100

  4. C/C++语言100题练习计划 87——火柴棒等式(枚举实现)

    名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前87/100

  5. C/C++语言100题练习计划 83——背包问题(贪心算法实现)

    名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前83/100

  6. C/C++语言100题练习计划 88——猜数游戏(二分查找实现)

    名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前88/100

  7. C语言100题练习计划 27——字符串替换

    名人说:学须志也,才须学也,非学无以广才,非志无以成学.--诸葛亮 进度:C/C++语言100题练习计划专栏,目前27/100

  8. C/C++语言100题练习计划 98——最长最短单词

    名人说:博学之,审问之,慎思之,明辨之,笃行之.--<中庸> 进度:C/C++语言100题练习计划专栏,目前98/100 一.问题呈现 1.问题描述 Problem Description ...

  9. C/C++语言100题练习计划 82——加勒比海盗船(贪心算法实现)

    名人说:故立志者,为学之心也:为学者,立志之事也.-- 王阳明 进度:C/C++语言100题练习计划专栏,目前82/100

最新文章

  1. R语言包_reshape2
  2. JAVA层HIDL服务的注册原理-Android10.0 HwBinder通信原理(八)
  3. Linux中shell模块的考试,linux下的shell编程要考试了题目这里有可是表示不会 求帮忙...
  4. 网易云信音视频技术落地提速,读书郎电话手表成行业先锋
  5. tornado上传图片
  6. Mysql 索引底层原理
  7. PHP 学习笔记 - - - 简单方法的使用 (数组)
  8. html表白照片墙,【原创】【申精】用python去告白 绘制照片墙(自定义格式)
  9. A. Balanced Substring
  10. 093-PHP数组比较
  11. 模块说和神经网络学说_让神经网络解释自己:牛津大学博士小姐姐,用毕业论文揭示“炼丹炉”结构...
  12. python用时间戳给文件命名规则_关于时间戳:python复制文件但保持原始
  13. CURL基于某个URL请求需要身份验证
  14. 举例计算机的发展状况,计算机的发展过程教学设计.doc
  15. 第14章 学习scikit-learn文档
  16. 内网穿透小知识|什么是端口映射?端口映射使用操作指南
  17. abp The value could not be converted to a GUID:
  18. C++调用Lua出现 unproteted error in call to Lua API错误的发现过程与解决方法
  19. JS算法笔记---移除元素
  20. iOS 开发修改app名称(display Name)后实际app名称没有变的情况

热门文章

  1. 机器人定位传感器之激光雷达
  2. kafka-topics.sh工具:查看/删除/修改/创建主题
  3. 数据分析中常见的存储方式
  4. acm暑期集训_2020.07.02
  5. gcc -shared -o libJava.so Java.o ./libdemo.a
  6. Hello Goodbye
  7. Linux 入门基本操作
  8. A4纸和一寸照在屏幕的尺寸计算
  9. 软件流程图及功能节点图
  10. Cmpp MsgId 生成算法