【题目描述】
哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。

【输入】
(无)

【输出】
分行输出:

例如:

6=3+3

8=3+5

(每个数只拆开一次,请保证第一个加数最小)

【输入样例】
(无)
【输出样例】
(无)

#include<iostream>
using namespace std;
bool isPrime(int x)
{   //3.判断x是否是素数if(x<2) return false; //2之前的不是素数for(int i=2;i<x;i++) //最小的素数是2 {if(x%i==0) return false;  //只要出现余数为0的情况,就不会是素数} return true;  //剩下的数都是素数
}
int split(int x)
{//2.拆分数字xcout<<x<<"=";for(int i=2;i<x;i++)  //先遍历第一个数 {int i2=x-i;  //得到第二个数 if(isPrime(i)&&isPrime(i2))  //两个数分别进行素数的判断 {cout<<i<<"+"<<i2<<endl;  //两个数都是素数的情况下才能输出 break;  //跳出循环,保证最小的素数在前面 }}
}
int main()
{   for(int i=6;i<=100;i+=2)  //1.将偶数遍历出来 {split(i);  //调用拆分函数 }return 0;
}

总结

题目划分了三个步骤:

①遍历偶数,并且调用拆分函数。

  这个步骤是在主函数main里写的,这个函数只要做遍历偶数和调用函数两件事情就可以了。巧妙地利用了赋值运算符+=与for循环的结合,将6-100之间的偶数都以参数的方式传进去即可。

②在拆分函数中,将传入的偶数拆成两个数,拆开的数进行素数的判断。

  根据题目的要求,先把偶数打印出来,得到左边的 “6=”,再用循环遍历的方法确定第一个数的范围。有了第一个数范围之后,就可以确定第二数的范围。因为我们通过观察得出规律:第二个数 = 偶数 - 第一个数 。接着,我们假设素数函数存在,将两个数分别传入,如果都是素数才可以进行表达式的输出,为了确保最小的素数在前面,我们要用break进行跳出循环的操作。

③写一个判断素数的函数。

  做三件事情:第一,判断x小于2的数是不是素数。第二,判断从2到x-1的数是不是素数。第三,剩下的都返回true即可,也就是剩下的数都是素数。

   例子:7是不是素数。
   从2开始遍历,也就是2、3、4、5、6
   7除以2或3或4或5或6,余数都不是0,所以就返回true,也就是7是素数。

   例子:6是不是素数。
   从2开始遍历,也就是2、3、4、5
   6除以2或3或4或5,只要有余数是0的情况,就会返回false,也就是6不是素数。

   所以,当循环遍历的时候,不可以遍历自己。

   素数:它的因数只有1和本身。素数也可以叫做质数。从字面意思上去看,素数的性格是朴素的,质数的性格是追求质量,它们的共同点就是以少为主,因此共同点可以与素数的概念联系在一起。

1157:哥德巴赫猜想相关推荐

  1. C++1157哥德巴赫猜想

    哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和.编程将6-100所有偶数表示成两个素数之和. [输入] (无) [输出] 分行输出: 例如: 6=3+3 8=3+5 ... (每个数只拆开一 ...

  2. 信息学奥赛一本通(1157:哥德巴赫猜想)

    1157:哥德巴赫猜想 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 21651     通过数: 12656 [题目描述] 哥德巴赫猜想的命题之一是:大于6 的 ...

  3. 信息学奥赛一本通(c++):1157:哥德巴赫猜想

    一.题目 1157:哥德巴赫猜想 时间限制: 1000 ms         内存限制: 65536 KB [题目描述] 哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和.编程将6-100所有 ...

  4. 信息学奥赛一本通:1157:哥德巴赫猜想

    1157:哥德巴赫猜想 [题目描述] 哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和.编程将6-100所有偶数表示成两个素数之和. [输入] (无) [输出] 分行输出: 例如: 6=3+3 ...

  5. 信息学奥赛一本通 1157:哥德巴赫猜想

    [题目链接] ybt 1157:哥德巴赫猜想 [题目考点] 1. 质数 [解题思路] 遍历6~100的每个偶数i,针对每个数字i: 遍历2~i/2的每个数字j,如果j与i-j是都为质数,那么说明将偶数 ...

  6. NOIP C++ 1157:哥德巴赫猜想

    1157:哥德巴赫猜想 [题目描述] 哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和.编程将6-100所有偶数表示成两个素数之和. [输入] (无) [输出] 分行输出: 例如: 6=3+3 ...

  7. c语言表示哥德巴赫猜想,用C语言来验证哥德巴赫猜想(定义的是int型)

    哥德巴赫猜想: 如果任意一个大于6的偶数都可以写成两个素数之和.就将其称为符合哥德巴赫猜想. #include #include /// /// 判断一个数是否是素数 /// /// 要判断的数 // ...

  8. 学术-数学:哥德巴赫猜想

    ylbtech-学术-数学:哥德巴赫猜想 哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的偶数都可写成两个质数之和.但是哥德巴赫自己无法证明它,于是就写信请教赫赫有名的大数学家欧拉帮 ...

  9. 用跑得最慢的电脑程序,理解最高深的哥德巴赫猜想

    五条规则的图灵机可视化.每列像素代表一步计算,步骤从左到右.黑色代表1.最右边表示图灵机的停机.(图片来源:Peter Krumins/Quanta Magazine) 文章来源:环球科学 " ...

最新文章

  1. Parser Generator Tips翻译(中英对译) by Joshua Xu
  2. hdu4923 f(A,B)分段处理
  3. C语言矩阵N*N旋转的算法(附完整源码)
  4. JS ===和==区别
  5. c#中使用ref和out传值
  6. CocoaPods打包静态库
  7. sdh管理单元指针_SDH设备上STM-1接口是啥玩意
  8. 打拼10年的数据分析师,终于明白职场鄙视链才是最大的沉没黑洞
  9. 职业规划计算机专业1500字,【计算机职业生涯规划书2000字】_计算机专业职业生涯规划书2000字...
  10. 禅修内观 | 一个璀璨的思想成就
  11. Fiddler抓包工具报:The system ptoxy changed. Click to reenable capturing
  12. hadoop可以解决什么问题_在家艾灸可以解决这些问题
  13. Avaya PBX sip trunk对接第三方sip server传递UUI的方法
  14. vue组件及生命周期
  15. windows mobile注册表修改小全
  16. 【赛博学】这才是元宇宙-三层空间-现实-经济-网络
  17. 标宋2号 仿宋3号 调整行间距
  18. 拼多多 2019校园招聘 正式批笔试-2018.8.28
  19. linux系统资源监控常用命令
  20. php转nodejs 代码,NodeJS实现视频转码的示例代码

热门文章

  1. Pytorch + Win10系统 + pip安装+ CUDA9.1版本(安装CUDA10.2版本)
  2. [JavaScript]如何将www.xxx.com变为com.xxx.www
  3. SRTM、ASTER、ALOS、TanDEM-X等常用免费数字高程模型(DEM)基本信息汇总
  4. HTTP请求错误 2xx 3xx 4xx 5xx
  5. 特征缩放feature scaling(吴恩达版详解)
  6. 【c语言】新概念(bushi) Water Article 多功能计算器的数学
  7. mysql数据库sa默认密码_SQL Server数据库sa密码相关问题的解决方法
  8. Mac键盘不起作用?苹果电脑键盘失灵解决教程
  9. 项目实训——2022
  10. 51单片机中断详解(上)