美文网首页C语言程序员
C语言编程学习验证世界近代三大数学难题之一《哥德巴赫猜想》

C语言编程学习验证世界近代三大数学难题之一《哥德巴赫猜想》

作者: 小辰带你看世界 | 来源:发表于2018-05-09 17:30 被阅读0次

C语言是面向过程的,而C++是面向对象的

C和C++的区别:

C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

数学是什么?在学霸眼中这只是一门小小的学科,但是在学渣眼中,这就是噩梦!那么今天,我们就来走进这噩梦中的噩梦,世界近代三大数学难题之一的《哥德巴赫猜想》!

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

1742年6月7日,哥德巴赫写信给欧拉,提出了著名的哥德巴赫猜想:随便取某一个奇数,比如77,可以把它写成三个素数之和,即77=53+17+7;再任取一个奇数,比如461,可以表示成461=449+7+5,也是三个素数之和,461还可以写成257+199+5,仍然是三个素数之和。例子多了,即发现“任何大于5的奇数都是三个素数之和。”

1742年6月30日欧拉给哥德巴赫回信。这个命题看来是正确的,但是他也给不出严格的证明。同时欧拉又提出了另一个命题:任何一个大于2的偶数都是两个素数之和。但是这个命题他也没能给予证明。

然后就把这个猜想问题给遗留下来了,然而数学的计算量问题是一个很大的困难,依靠人力来计算非常吃力,这时候采用计算机来验证就显得尤为方便。

那么我们就来验证一下吧:

#include

#include

#include

int fflag(int n);

void main()

{

int i, j, n;

long max;

system("cls");

puts("============================================================");

puts("|| 《哥德巴赫猜想》 ||");

puts("|| ||");

puts("|| 即任何正偶数可以分解为两个素数的和。 ||");

puts("|| 例如: 4=2+2, 6=3+3, 8=3+5, 10=3+7, 12=5+7 ... ||");

puts("============================================================");

printf(" >> 请输入你想要验证的规模n: ");

scanf("%ld", &max);

printf(" >> 现在程序开始验证正偶数 ");

printf(" >> 小于等于两个素数的和。 ", max);

for (i = 4, j = 0; i <= max; i += 2)

{

for (n = 2; n

if (fflag(n)) /*分别判断两个整数是否均为素数*/

if (fflag(i - n))

{/*若均是素数则输出*/

printf("%4d=%2d+%2d ", i, n, i - n);

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

j++;

if (j == 5)

{

printf(" ");

j = 0;

}

break;

}

if (n == i) printf("错误为 %d ", i);

}

puts(" >> 按任意键退出…");

getchar();

}

int fflag(int i) /*判断是否为素数*/

小编推荐一个学C语言/C++的学习裙【 六九九,四七零,五九六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

{

int j;

if (i <= 1)return 0;

if (i == 2)return 1;

if (!(i % 2))return 0; /*if no,return 0*/

for (j = 3; j <= (int)(sqrt((double)i) + 1); j += 2)

if (!(i%j))return 0;

return 1; /*if yes,return 1*/

}

这些是C/C++能做的

服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

相关文章

网友评论

    本文标题:C语言编程学习验证世界近代三大数学难题之一《哥德巴赫猜想》

    本文链接:https://www.haomeiwen.com/subject/oipwrftx.html