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

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

20世纪80年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

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

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

{

for (n = 2; n

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

if (fflag(i - n))

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

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

j++;

if (j == 5)

{

printf(" ");

j = 0;

}

break;

}

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

}

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

getchar();

}

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

{

int j;

if (i

if (i == 2)return 1;

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

for (j = 3; j

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

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

}

这些是C/C++能做的

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180706A0PRLB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券