scratch数字之谜——哥德巴赫猜想

哥德巴赫猜想是指任何大于2的偶数都可以写成两个素数之和。例如:8=3+5,12=5+7,16=3+13,……这是德国数学家哥德巴赫在1742年提出的一个猜想,它被称为世界近代三大数学难题之一。

file

哥德巴赫自己无法证明这个猜想,曾写信请教赫赫有名的大数学家欧拉帮忙证明。但是终其一生,欧拉也没能给出严格的证明。哥德巴赫猜想被提出后吸引了全世界数学家和数学爱好者的目光,它被人们称为数学皇冠上一颗可望而不可即的“明珠”。时至今日,哥德巴赫猜想依然没有得到解决,目前最好的成果(陈氏定理)是1966年由中国数学家陈景润取得的。

file

请编写验证“哥德巴赫猜想”的程序,对“1000以内大于2的正偶数都能分解为两个素数之和”进行验证。

编程思路

将一个偶数n分解为j和n-j两部分,再判断如果j和n-j都是素数,那么该偶数就验证通过。该程序的代码见下图

file

在该程序中,用到一个名叫为“是否素数”的模块(见下图),它用于判断一个自然数是否为素数。

file

单击绿旗进行程序,1000以内通过验证的正偶数被记录到“哥德巴赫猜想”列表中。

试一试

一个正偶数可能会有多种分解方法,该程序中只记录其中一种分解方法。另外,该程序中判断素数的方法不是高效的,在数据最少时尚可使用。如果你对此有兴趣,可以尝试先建立一个素数表,再通过素数表来判断一个数是否为素数,这样效率更高。

请你试一试,使用上面的程序,继续验证1000~10000的正偶数是否符合“哥德巴赫猜想”。

黔西南 触摸未来
我们正身处一个只要愿意思考,就能改变世界的时代