最大素数,也是全球已知的最大梅森素数:2136279841−1,按照十进制计算有 41024320 位数字,比此前最大纪录的素数(24862048 位)多 1600 多万位。一位英伟达前员工通过开源项目GIMPS(梅森素数大搜索,Great Internet Mersenne Prime Search)报告了这一结果。
发展
素数也叫
质数,是只能被自己和1整除的数。按照规定,1不算素数,最小的素数是2,其后依次是3、5、7、11等等。 早在2500年前,希腊数学家
欧几里德就证明了素数是无限的,并提出少量素数可写成“2的n次方减1(2^n-1)”的形式,这里n也是一个素数。但是人类已知的素数很有限,因为数字越大,要发现新的素数就越困难。不过,很多数学家曾对素数问题进行过研究,17世纪的法国教士马丁·梅森就是其中成果较为卓著的一位,因此后人将“2的n次方减1(2^n-1)”形式的素数称为梅森素数。随后,以梅森素数的形式,最大素数的记录被不断刷新。
最大素数历史
1876年,数学家卢卡斯证明了2^127-1是当时已知的最大素数。这个记录保持了75年,这是一个39位的数。
直到1951年,借助于新出现的电子
计算机,人们才发现有79位数字的更大素数。1952年时,最大素数是2^2,281-1,有687位数。位数在1,000位以上的素数到1961年才被发现,它是2^4,423-1,共有1332位数。从1951年到1971年的20年间,最大素数的纪录被不断刷新。1971年,美国数学家塔克曼在
纽约州的纽克顿利用国际商业机器公司的
IBM360/91型电子计算机,历时39分26.4秒,算出了当时的最大素数2^19,937-1,这是一个6,002位的数字,它最前面的五位数是43,154,最后面的三位数是471。
1978年10月,世界几乎所有的大新闻机构(包括中国的新华社)都报道了以下消息:两名年仅18岁的
美国高中生诺尔和尼科尔使用CYBER174型计算机找到了第25个梅森素数:M21701。
2008年8月,美国加州大学洛杉矶分校(
UCLA)的计算机专家
史密斯(E.Smith)通过参加了一个名为“
因特网梅森素数大搜索”(
GIMPS)的
国际合作项目,发现了第46个也是最大的梅森素数2^43,112,609-1,该素数也就是2自身相乘43,112,609次减1,它有12,978,189位数,如果用普通字号将这个巨数连续写下来,它的长度可超过50公里!最近,这一成就被美国的《时代》杂志评为“2008年度50项最佳发明”之一,排名在第29位。
据英国《
新科学家》杂志网站报道,美国
中央密苏里大学数学教授
柯蒂斯·库珀(Curtis Cooper)领导的研究小组于2013年1月25日发现了已知的最大梅森素数——2^57,885,161-1 (即2的57,885,161次方减1);该素数有17425170位,如果用普通字号将它连续打印下来,它的长度可超过65公里!
据外媒报道,美国州立
中密苏里大学柯蒂斯库珀(Curtis Cooper)通过GIMPS项目发现了第49个梅森素数 2^74,20,7281-1(被称为
M74207281),为GIMPS项目诞生20周年献礼。
2017年12月26日,互联网
梅森素数大搜索(GIMPS)项目宣布发现第 50 个梅森素数和已知最大的素数:2^77,232,917-1,共有 23,249,425 位。该素数已被多人使用不同的硬件和软件完成验证。发现者是 GIMPS 志愿者 Jonathan Pace,他住在
田纳西州的 Germantown,是一位
电机工程师,他有资格获得 3000 美元的研究发现奖。
GIMPS 是一个分布式计算项目,距今已有 20 多年的历史,它利用志愿者的空闲
CPU 创建了一个遍布全球的
超级计算机,它的
prime95 软件此前发现了
英特尔处理器的一个漏洞。
2018年12月7日,住在美国
佛罗里达州奥卡拉市的Patrick Laroche也是通过GIMPS项目发现了第51个梅森素数:2^82,589,933-1(被称为M82589933),共有24,862,048位。
梅森素数
1995 年,美国
程序设计师乔治·沃特曼整理有关梅森素数的资料,编制了一个梅森素数计算程序,并将其放置在因特网上供数学爱好者使用,这就是分布式计算
因特网梅森素数大搜索(GIMPS)项目。有6万多名志愿者、超过20万台计算机参与这项计划。该计划采取分布式计算方式,利用大量普通计算机的
闲置时间,获得相当于超级计算机的
运算能力,第 37、38 和 39 个梅森素数都是用这种方法找到的。美国一家基金会还专门设立了 10 万美元的奖金,鼓励第一个找到超过千万位素数的人。
素数无限
不存在最大质数!
上小学的时候,我们就知道所有的
正整数可以分为质数(素数)和合数两类,当然还特别规定了“1既不是质数,也不是合数”。100以内的质数,从小到大依次是:2、3、5、7、11、13、17、19、……、83、89、97。不用说了,你一定背不下来。那么质数的个数是不是有限多的呢?
(附:100以内的质数从小到大依次是:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61, 67,71,73,79,83,89,97。共计25个。)
在解决这个问题之前,我们先来看看另一个问题:怎样判断一个已知
自然数是不是质数。比如,143是不是质数?
你一定会按照下面这个步骤去判断: 先用
最小的质数2去除143,不能整除;再用3去试试,还是不行;再依次用5、7试试,还是不行;11呢?行!143=11×13,所以143不是质数,而是合数。所以,判断一个数是不是
质数,只需用比这个数小的所有质数,依次去除它即可,如果都不能整除的话,这个数就一定是质数;相反,只要这个数能够被某一个质数整除,这个数就一定是合数。这种方法所依据的原理是:每一个合数都可以表示成若干个质数的乘积。不用说,这叫做“
分解质因数”,也是
小学数学的知识。
我们先假设质数的个数是有限多的,用p1,p2,……,pn表示,那么必然存在一个“最大的质数”,设这个“最大的质数”为pn。下面我们找出从1到pn之间的所有质数,把它们连乘起来,就是:
2×3×5×7×11×13×……×pn,设为N
M=2×3×5×7×11×13×……×pn+1,即M=N+1;
那么这个M是质数还是合数呢?
如果M为质数,因M要大于p1,p2,……,pn,所以它不在那些假设的全部素数的集合中。
如果M为合数,因为任何一个合数都可以分解为几个素数的积;而N和M(N+1)的
最大公约数是1,所以M不可能被p1,p2,……,pn整除,所以该合数分解得到的
素因数肯定不在假设的全部素数的集合中。
因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。