哥德巴赫猜想:任何一个大于6的偶数,都由两个素数相加组成

一、程序设计思路:

任意输入一个大于6的偶数,打印出组成它的两个素数。

例如输入偶数n,使n = i + j,i与j均为素数。

可利用穷举法查找i与j的值,因为n从6开始,故i可以从3开始尝试(因为1不是素数,若i=2且n是大于6的偶数,则j必定不是素数),判断i是否为素数,若i是素数则判断j(可求出j=n-i)是否为素数,若成立则返回结果,若不成立则i+=2继续查找下一个素数(因为i=3开始,故以2为步长取值令i+=2可以更快找出i的值)

二、准备过程

想要实现此代码,首先需要知道如何判断一个数是否为素数。

判断素数:对于一个整数k,如果k不能被2到根号k之间的所有整数除尽,则k是素数

sqrt() 是开根号函数

#include <math.h>
int main()
{printf("请输入一个整数:");int k = 0, flag = 1;scanf("%d", &k);for (int i = 2; i <= sqrt(k); i++){if (k % i == 0){flag = 0;break;}}if (flag == 1)printf("%d是素数", k);elseprintf("%d不是素数", k);return 0;
}

代码解析:上述代码中,输入整数k,定义flag为1,i为2。如果k除i没有余数即k对i取模为0,那么flag=0并结束for循环,k不是素数。如果k除i有余数即k对i取模不为0,那么i++,i=3,继续判断k对i取模是否为0,直至i不满足for循环条件i <= sqrt(k),若此时flag依旧是1,则k是素数。

三、代码实现-验证哥德巴赫猜想

#include <math.h>
int main()
{int n, i, j, m, k;
loop1:printf("请输入一个大于6的偶数:");scanf("%d", &n);if (n >= 6 && n%2==0) {for (i = 3; i <= n / 2; i+=2) {int flag1 = 1;for (j = 2; j <= sqrt(i) + 1; j++) {if (i % j == 0){flag1 = 0;break;}}if (flag1 == 1) {m = n - i;int flag2 = 1;for (k = 2; k <= sqrt(m); k++)if (m % k == 0){flag2 = 0;break;}if (flag2 == 1){printf("偶数%d由素数%d和素数%d组成。", n, i, m);break;}}}}else{printf("请输入合法数字!\n");goto loop1;}
}

运行结果:

C语言入门基础_验证哥德巴赫猜想相关推荐

  1. python基础知识验证哥德巴赫猜想

    哥德巴赫猜想: 任何大于2的偶数都能够写成两个质数相加的形式. 验证思路: 编写哥德巴赫分解程序,输入一个数,输出他的两个子质数,如果找不到,返回False.遍历整数,查看是否有False的情况,如果 ...

  2. (C语言)验证哥德巴赫猜想,输入一个大于6的偶数,输出这个数能被分解为哪两个质数的和

    (C语言)验证哥德巴赫猜想,输入一个大于6的偶数,输出这个数能被分解为哪两个质数的和,如10=3+7,12+5+7. // 质数:除了1和自身,不能被任何数整除的数 #include<stdio ...

  3. c语言任何一个大于6的偶数均可表示为两个素数之和,C语言:验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和...

    题目: C语言:验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和 [问题描述] 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和。例如6=3+3,8=3+5,-,18=5+13 ...

  4. 【C语言】验证哥德巴赫猜想:任何一个大于2的偶数均可表示成为两个素数之和。

    [C语言]验证哥德巴赫猜想:任何一个大于2的偶数均可表示成为两个素数之和. 例如:4=2+2,6=3+3,8=3+5- 要求:将6-100之间的偶数都表示为两个素数之和,输出时一行5组.若有多组结果满 ...

  5. C语言验证哥德巴赫猜想

    验证哥德巴赫猜想: 任何一个大于6的偶数都可以表示成两个素数之和.程序功能:输入一个大于2的偶数,输出该偶数的两个素数加和算式. 如 请输入一个偶数:10 10=3+7=5+5 /*哥德巴赫猜想*/ ...

  6. (c语言)使用函数验证哥德巴赫猜想

    题目描述 本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和.素数就是只能被1和自身整除的正整数. 输入两个正整数m和n(0<=m& ...

  7. 【算法】验证哥德巴赫猜想

    问题来源 Timus Online Judge 网站上有这么一道题目:1356. Something Easier.这道题目的输入是一组  2 到 109 之间整数,对于每个输入的整数,要求用最少个数 ...

  8. c语言3到7位水仙花数流程图_C语言入门基础整理

    学习计算机技术,C语言可以说是必备的,他已经成为现在计算机行业人学习必备的,而且应用也是十分的广泛,今天就来看看拥有几年c语言工作经验的大神整理的C语言入门基础知识,没有学不会,只有不肯学. 结构化程 ...

  9. C语言入门基础知识有哪些?

    众所周知C语言经久不衰,并且很多人都想要成为C语言工程师,为了能够做好C语言技术学习,需要知晓C语言入门基础知识有哪些. 用一个简单的C程序例子,介绍C语言的基本构成.格式.以及良好的书写风格,使小伙 ...

最新文章

  1. webgl 游戏_30个令人惊叹的WebGL示例和演示
  2. c++ boost库
  3. Javascript面向对象编程(一):封装
  4. PM——视屏操作软件
  5. Object之defineProperty
  6. jzoj6275-[NOIP提高组模拟1]小L的数列【矩阵乘法,欧拉定理】
  7. c oracle 记录,ORACLE 19c 操作相关记录
  8. Django模型关系
  9. HTML5 文本元素
  10. python中shift函数rolling_Pandas Shift函数的基础入门学习笔记
  11. eclipse注释模板与代码规范导入例子及配置文件
  12. CF 766C - Mahmoud and a Message (DP+字符串)
  13. ueditor接入秀米编辑器
  14. Reviewboard使用介绍
  15. python qq群发消息_Python版QQ群发消息
  16. macos安装盘第三方工具制作_简单制作 Mac OS X USB 启动盘的方法教程
  17. Qt自带示例演示程序
  18. DIV根据里面文字自动撑开
  19. 微服务与宏服务?故事线-基本概念(理解)
  20. WPF的本地化思路提示:直接汉化BAML

热门文章

  1. oracle rfs进程过多,【DB笔试面试755】在Oracle的DG中,RFS、LNSn、MRP、LSP进程的作用分别是什么?...
  2. MATLAB处理矩阵的一些命令
  3. UOS将字体制作成软件包,可双击安装
  4. Linux的软件包封装格式有,RED HAT LINUX所提供的安装软件包,默认的打包格式为( )。...
  5. 找字符串中最长单词C语言,C语言 在已知字符串中找最长单词
  6. div+css实现圆角阴影效果
  7. GFW 三定律,太有创意了,太真实了,胆太大,竟敢光天化日下说实话!
  8. 设计模式与软件体系结构复习资料——设计模式
  9. java时间戳 时间格式转换与时差
  10. 008.环形链表 II-双指针