APP下载

用Python验证费马—欧拉素数定理

2022-04-12王德贵

电脑报 2022年13期
关键词:数论素数欧拉

王德贵

每个可表示为 4n + 1 形式的素数,只能用一种两数平方和的形式来表达。

17世纪伟大的法国数学家费马(1601 – 1665 年)虽然于 1660 年就发现了这一著名的定理,然而直到 1670 年,才在费马的儿子编辑的丢番图(Diophantus,古希腊数学家)的《算术》中以附注的形式发表。不过书中不能肯定费马是否已经得出证明。直到一百年后,才由欧拉发表了这一定理的证明,他为了解决这个问题辛苦研究多年才写出了论文“费马定理的证明,形为 4n + 1 素数可以表示为两数平方之和”。

今天我们就用Python来简单地验证一下费马—欧拉定理。

费马—欧拉定理,也称费马—欧拉素数定理,现在已经有了多种证法。证明方法要涉及数论问题,在此不作过多论述,有兴趣的老师和同学可以查阅相关资料。

今天我们只用Python做简单验证。

数论,是纯粹数学的分支之一,主要研究整数的性质。历史上的数学家做了很多相关研究,提出了很多有趣的问题,到了现在有的已经证明,有的仍然是世界级的难题,尚未被证明。我们在学习编程的过程中通过对数论难题的验证,能提高我们对Python、图形化或APPInventor的掌握,也能在巩固编程知识的同时加强等级考试相关知识点的掌握。

我们验证在一定范围内的所有4n + 1 形式的素数,是不是都可以表示为两数平方和的形式。

首先我们利用自定义函数确定在这个范围内的所有素数,再筛选出所有4n + 1 形式的素数,然后利用枚举算法一一验证每个素数,是不是可以表示为两数的平方和,如果可以,就输出。

然后修改程序,根据两数的和是否相同来去重。

程序涉及等级考试四级内容,自定义函数、枚举、集合等相关知识。

两次循环加判断输出在一定范围内所有4n + 1 形式的素数(图1)。

根据筛选出来的素数,先把所有满足条件的两数都输出(图2)。

比如先测试在100范围内的素数情况。结果如下,大家可以看到,两数有重复,但每个4n + 1 形式的素数都是一组值(图3)。

我們利用两数和去重,是因为不难推出两数平方和相同,这两个数的和一定不相等(图4)。

输出结果如下,可以看到,每个4n + 1 形式的素数都是一组值(图5)。

我们可以测试更大范围的值。1000范围内,4n + 1 形式的素数共有80个(图6)。

定理的验证也可以用自定义函数,只需涉及等级考试二级内容,还可以利用集合去重。有兴趣的老师和同学可以自己研究一下。

这个程序在执行中,先输出所有质数,再筛选4n+1 形式的素数,所以我们在执行程序时,也可以想到另一个方法,就是在4倍范围内判断。

即是在1-n范围内循环,求得4n+1的值,如果它是素数,那就输出满足条件的两数,同时去重。程序如图7:

可以看到输出结果与前面相同(图8)。

其实费马-欧拉素数定理还涉及到很多相关数论问题,本文不作过多介绍。文章是我学习过程的心得,如有不当之处,请各位同仁、朋友斧正。

NULL与0有着扯不断理还乱的关系,其实也不那么高深。

1.对象的内容不同

0表示对象的内容确定为0。

NULL表示对象的内容为空,即对象的内容是空白的。

空值表示对象的内容无法确定。

2.对象的值不同

0表示对象的值等于0。

NULL表示对象计算中具有保留的值,用于指示指针不引用有效对象。

空值表示值未知,空值一般表示数据未知、不适用或将在以后添加数据。

总的来说,0本身有着一些原生的特性,诸如:起始、没有、正负的分界线,0/1中的0还可以表示否定。NULL在数据库中表示不知道的数据,主要有3种意思:知道数据存在,但不知道具体值;不知道数据是否存在;数据不存在。

猜你喜欢

数论素数欧拉
对欧拉错排问题的探究
赖彬文
蔡国成
欧拉不等式一个新的加强
等距素数对初探
孪生素数新纪录
欧拉不等式的一个加强猜想的验证
素数与哥德巴赫猜想
专题五:初等数论与组合数学
起效素数的有效排除力总和与素数两个猜想