验证哥德巴赫猜想c语言算法,验证哥德巴赫猜想的简单优化
哥德巴赫猜想:任意一个大于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语言算法,验证哥德巴赫猜想的简单优化相关推荐
- 哥德巴赫猜想c 语言,c++验证哥德巴赫猜想
哥德巴赫猜想是世界近代三大数学难题之一.1742年,由德国中学教师哥德巴赫在教学中首先发现的.1742年6月7日哥德巴赫把自己的多年实验证明写信给当时的大数学家欧拉,欧拉回信正式提出了以下两个猜想:a ...
- c语言任何一个大于6的偶数均可表示为两个素数之和,C语言:验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和...
题目: C语言:验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和 [问题描述] 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为2个素数之和。例如6=3+3,8=3+5,-,18=5+13 ...
- 【C语言】验证哥德巴赫猜想:任何一个大于2的偶数均可表示成为两个素数之和。
[C语言]验证哥德巴赫猜想:任何一个大于2的偶数均可表示成为两个素数之和. 例如:4=2+2,6=3+3,8=3+5- 要求:将6-100之间的偶数都表示为两个素数之和,输出时一行5组.若有多组结果满 ...
- c语言验证信用卡 卡号介于13到16位,使用luhn算法验证信用卡号码
信用卡号码符合特定模式.信用卡必须有13到16位数字.它必须先从: •4 Visa卡 •5主卡 •37美国运通卡 在1954年,IBM的汉斯·卢恩提出的算法验证信用卡号.该算法对于确定卡号是否正确输入 ...
- 【Block-Level Verification】 芯片开发通识_验证目标_ 验证语言_ 验证职业前景 _挑战和瓶颈_验证周期_功能描述文档_验证计划_回归测试_硅后测试_逃逸分析...
SystemVerilog验证通识 1. 芯片开发概述 不同于通用电路,专用集成电路为了专门解决或者优化相关工程问题,例如专用算法的电路实现,如芯片里加入人工智能处理单元,为CPU\GPU减负,目的是 ...
- python回归算法_基于Python的函数回归算法验证
看机器学习看到了回归函数,看了一半看不下去了,看到能用方差进行函数回归,又手痒痒了,自己推公式写代码验证: 常见的最小二乘法是一阶函数回归 回归方法就是寻找方差的最小值 y = kx + b xi, ...
- CShell (REPL) :轻量级、可扩展(dll)、 支持C#语法 的接口算法验证工具
发现一个开源小工具--CShell CShell方便进行各种简单的C#代码测试,比如接口验证,算法验证等等.完成相应工作 Visual Studio往往太重.该工具基于NRefactory.Mono. ...
- m_Orchestrate learning system---十三、thinkphp的验证器支持多语言么
m_Orchestrate learning system---十三.thinkphp的验证器支持多语言么 一.总结 一句话总结:支持,不仅验证器支持,其它的插件应该都支持 不仅thinkphp支持多 ...
- 可验证随机函数VRF之Algorand算法
原文链接:https://zhuanlan.zhihu.com/p/29429006 DFINITY的阈值接力结构与可验证随机函数(VRF)密切相关,VRF算法作为一种基于密码学的新型共识模型被提出, ...
最新文章
- Java核心技术笔记 语言基础
- 弱事件 WeakEvent
- 【2018.4.21】模拟赛之二-ssl2403 蜡烛【贪心】
- popwindow 加个边框_利用popupwindow生成带有列表的对话框,并设置对话框列表的点击事件...
- org.eclipse.e4.core.di.InjectionException:org.eclipse.swt.SWTException: Widget is disposed
- python命名空间,类成员,对象成员
- 闲谈REST API
- 深入浅出通信原理知识点8
- 网络安全-应急响应之入侵排查篇及相关工具
- java中数字循环嵌套举例,在Java程序中,复杂算法可以通过循环语句和的相互嵌套来实现。...
- java持久化框架对比_四种流行的持久化框架比较
- 财务分析就是财务报表分析吗?
- 书籍折页是什么效果_书籍折页什么样 - 卡饭网
- 浅析:宝贝标题关键词优化技巧
- 基于C#的ArcEngine二次开发教程(03):ArcEngine的接口查询技术底层分析
- Ubuntu Wifi 配置 HP rtl8723be
- java集合比较大小_arraylist 怎么比较元素大小?
- 自定义线程池拒绝策略缓解高并发下线程池压力
- bash内置文档(ubuntu20.10)
- Excel规划求解Solver:三种方法的区别
热门文章
- Symantec防病毒企业版10.1部署方法一
- java中将string类型转int类型或者将string类型转long类型方法(亲测)
- kafka解决了什么问题?
- Docker报错Cannot connect to the Docker daemon at unix:///var/run/docker.sock. ...
- PHP的memory_limit
- jQuery的prev next
- regedit start mysql_MySQL安装完成配置的时候start service报错
- 计算机网络一种开源,第一公里以太网
- java在己有的类创子类怎么创_使用Java创建自己的异常子类
- PHP预防XSS攻击,ajax跨域攻击的方法