哥德巴赫猜想:任意一个大于2的偶数,都可以表示为两个素数之和。

验证:2000以内,大于2的偶数,都可以分解为两个素数之和。

分析:2000以内,大于2的偶数为999个,需要逐个判断。

判断过程:对于每个偶数,将他分解为两个数,他们的和等于该偶数。然后分别判断这两个数是否为素数,若可以,则满足题意;否则,重新分解并做素数判断。当找到一个偶数无法等于为两个素数之和,验证失败,程序结束。

#include int main()

{

int isPrime[2000];

//素数判断用到的辅助数组,值为1或0,元素默认为0,

//isPrime[a]=0,代表 a 不是素数,isPrime[a]=1时,等于 a 是素数。

int a = 1;

int flag ,i;

//while循环用于找出2000以内所有素数

while (a <= 2000)

{

flag = 0;

for(i = 2; i <= a/2; ++i)

{

if(a % i == 0)

{

flag = 1;

break;

}

}

if (flag == 0){

isPrime[a] = 1;//表示数 a 为素数

}

++a;

}

int k;

for(i = 4;i <= 2000;i += 2){

for(k = 2;k <= i/2;k++){//分解,k从2开始,因为1不是素数,k小于等于i/2,因为从i/2处,分解与之前的分解对称。

if(isPrime[k] && isPrime[i - k]){//判断分解得到的两个数是否均为素数

printf("第%d个偶数:%d + %d = %d\n", i/2, k, i-k, i);

break;

}

}

if(k>(i/2)){

//上面for循环,并没有break出来,k才会大于i/2,这就代表偶数 i 无法分解成两个素数之和。

printf("error");

break;

}

}

return 0;

}

优化了两部分,

1、偶数分解部分,避免了重复判断。

2、优化了素数判断,避免了重复判断。

验证哥德巴赫猜想c语言算法,验证哥德巴赫猜想的简单优化相关推荐

  1. 哥德巴赫猜想c 语言,c++验证哥德巴赫猜想

    哥德巴赫猜想是世界近代三大数学难题之一.1742年,由德国中学教师哥德巴赫在教学中首先发现的.1742年6月7日哥德巴赫把自己的多年实验证明写信给当时的大数学家欧拉,欧拉回信正式提出了以下两个猜想:a ...

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

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

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

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

  4. c语言验证信用卡 卡号介于13到16位,使用luhn算法验证信用卡号码

    信用卡号码符合特定模式.信用卡必须有13到16位数字.它必须先从: •4 Visa卡 •5主卡 •37美国运通卡 在1954年,IBM的汉斯·卢恩提出的算法验证信用卡号.该算法对于确定卡号是否正确输入 ...

  5. 【Block-Level Verification】 芯片开发通识_验证目标_ 验证语言_ 验证职业前景 _挑战和瓶颈_验证周期_功能描述文档_验证计划_回归测试_硅后测试_逃逸分析...

    SystemVerilog验证通识 1. 芯片开发概述 不同于通用电路,专用集成电路为了专门解决或者优化相关工程问题,例如专用算法的电路实现,如芯片里加入人工智能处理单元,为CPU\GPU减负,目的是 ...

  6. python回归算法_基于Python的函数回归算法验证

    看机器学习看到了回归函数,看了一半看不下去了,看到能用方差进行函数回归,又手痒痒了,自己推公式写代码验证: 常见的最小二乘法是一阶函数回归 回归方法就是寻找方差的最小值 y = kx + b xi, ...

  7. CShell (REPL) :轻量级、可扩展(dll)、 支持C#语法 的接口算法验证工具

    发现一个开源小工具--CShell CShell方便进行各种简单的C#代码测试,比如接口验证,算法验证等等.完成相应工作 Visual Studio往往太重.该工具基于NRefactory.Mono. ...

  8. m_Orchestrate learning system---十三、thinkphp的验证器支持多语言么

    m_Orchestrate learning system---十三.thinkphp的验证器支持多语言么 一.总结 一句话总结:支持,不仅验证器支持,其它的插件应该都支持 不仅thinkphp支持多 ...

  9. 可验证随机函数VRF之Algorand算法

    原文链接:https://zhuanlan.zhihu.com/p/29429006 DFINITY的阈值接力结构与可验证随机函数(VRF)密切相关,VRF算法作为一种基于密码学的新型共识模型被提出, ...

最新文章

  1. Java核心技术笔记 语言基础
  2. 弱事件 WeakEvent
  3. 【2018.4.21】模拟赛之二-ssl2403 蜡烛【贪心】
  4. popwindow 加个边框_利用popupwindow生成带有列表的对话框,并设置对话框列表的点击事件...
  5. org.eclipse.e4.core.di.InjectionException:org.eclipse.swt.SWTException: Widget is disposed
  6. python命名空间,类成员,对象成员
  7. 闲谈REST API
  8. 深入浅出通信原理知识点8
  9. 网络安全-应急响应之入侵排查篇及相关工具
  10. java中数字循环嵌套举例,在Java程序中,复杂算法可以通过循环语句和的相互嵌套来实现。...
  11. java持久化框架对比_四种流行的持久化框架比较
  12. 财务分析就是财务报表分析吗?
  13. 书籍折页是什么效果_书籍折页什么样 - 卡饭网
  14. 浅析:宝贝标题关键词优化技巧
  15. 基于C#的ArcEngine二次开发教程(03):ArcEngine的接口查询技术底层分析
  16. Ubuntu Wifi 配置 HP rtl8723be
  17. java集合比较大小_arraylist 怎么比较元素大小?
  18. 自定义线程池拒绝策略缓解高并发下线程池压力
  19. bash内置文档(ubuntu20.10)
  20. Excel规划求解Solver:三种方法的区别

热门文章

  1. Symantec防病毒企业版10.1部署方法一
  2. java中将string类型转int类型或者将string类型转long类型方法(亲测)
  3. kafka解决了什么问题?
  4. Docker报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. ...
  5. PHP的memory_limit
  6. jQuery的prev next
  7. regedit start mysql_MySQL安装完成配置的时候start service报错
  8. 计算机网络一种开源,第一公里以太网
  9. java在己有的类创子类怎么创_使用Java创建自己的异常子类
  10. PHP预防XSS攻击,ajax跨域攻击的方法