概说
素数是指在大于1的整数中只能被1和其自身
整除的数。素数有无穷多个,但到2024年10月却只发现有52个素数能表示成2p-1(p为素数)的形式,这就是梅森素数(如3、7、31、127等等)。它是以17世纪法国数学家
马林·梅森的名字命名。
梅森素数是数论研究中的一项重要内容,早在
古希腊时期人们就知道了2p-1型素数的概念。由于这种素数具有独特的性质(和
完全数有关)和无穷的魅力,千百年来一直吸引着众多数学家和无数的数学爱好者对它进行研究和探寻。
在现代,通过对梅森素数的深入探究,促进了多种学科和新技术的发展。它还是人类好奇心、
求知欲和
荣誉感的最好见证。
由来
早在公元前300多年,
古希腊数学家
欧几里得就开创了研究2p-1的先河,他在名著《
几何原本》第九章中论述了
完全数与2p-1型素数的关系。
1640年6月,
费马在给
马林·梅森(Marin Mersenne)的一封信中写道:“在艰深的数论研究中,我发现了三个非常重要的性质,我相信它们将成为今后解决素数问题的基础。”这封信讨论了形如2p-1的数。
马林·梅森是17世纪欧洲科学界一位独特的中心人物,他与包括费马在内的很多科学家经常保持通信联系,讨论数学、物理等问题。当时的欧洲,学术刊物和
科研机构还远未出现,也没有国际会议这种形式,交往广泛、热情诚挚且博学多才的梅森就成了各国科学家之间联系的桥梁,许多科学家都乐于将研究成果告诉他,然后再由他转告给更多的人。梅森还是
法兰西科学院的奠基人,为科学事业做了很多有益的工作,被选为“100位在世界
科学史上有重要地位的科学家”之一。
梅森在欧几里得、费马等人有关研究的基础上对2p-1型的数作了大量的计算、验证,并于1644年在他的《物理数学随感》一书中断言:在≤257的素数中,当p=2、3、5、7、13、17、19、31、67、127、257时,2p-1是素数,其它都是合数。前面的7个数(即p=2、3、5、7、13、17、19)已被前人所证实,而后面的4个数(即p=31、67、127、257)则是梅森自己的推断。由于梅森在科学界有着崇高的学术地位,当时的人们对其断言都深信不疑。
后来人们才知道梅森的断言其实包含着若干错漏。不过梅森的工作却极大地激发了人们研究2p-1型素数的热情,使其摆脱作为“完全数”的附庸地位,可以说梅森的工作是2p-1型素数研究的一个转折点和里程碑。由于梅森学识渊博、才华横溢、为人热诚以及最早系统而深入地研究2p-1型的数,为了纪念他,数学界就把这种数称为“
梅森数”,并以Mp记之(其中M为梅森姓名的首字母),即Mp=2p-1。如果梅森数为素数,则称之为“梅森素数”(即2p-1型素数)。
寻找历程
2300多年来,人类发现52个梅森素数,由于这种素数珍奇而迷人,因此被人们誉为“数海明珠”。自梅森提出其断言后,人们发现的已知
最大素数几乎都是梅森素数,因此寻找新的梅森素数的历程也就几乎等同于寻找新的最大素数的历程。
梅森素数的探寻难度极大,它不仅需要高深的理论和纯熟的技巧,而且需要进行艰苦的计算。
手算笔录时代
早在公元前4世纪,古希腊著名数学家欧几里得(前330~前275)就提出了2p-1型素数的概念,即可以表示为2p-1形式的素数。他发现这种类型的素数和完全数之间有着密切联系:如果2p-1是素数,则2p-1(2p-1)是完全数。欧几里得的结论为2p-1型素数研究奠定了基础。不过在计算能力低下的公元前,人们仅知道四个2p-1型素数:、、和,发现人已无从考证。
15世纪,第5个2p-1型素数的发现人同样没有留下姓名。
长期以来人们一直以为所有2p-1型的数可能都是素数,但雷吉乌斯在1536年纠正了这一错误观点。他指出M11=23×89,并不是素数。由此人们开始深入思考哪些2p-1型的数才是素数?这样的素数又有多少?人类寻找2p-1型素数之路开始真正走上正轨。
首先对2p-1型的数进行整理的是
意大利数学家彼得罗·卡塔尔迪(1548~1626)。1588年,卡塔尔迪先是正确地指出p=17和19,2p-1是素数;但他之后又提出p=23、29、31和37,2p-1也都是素数。在卡塔尔迪所处的年代,判断2p-1型的数是不是素数极其困难。虽然卡塔尔迪的结论经后人验证错了三个,人们还是把和这两个素数归于他的发现。
17世纪,法国数学家
马林·梅森(1588~1648)对2p-1型的数进行了更为全面深入地研究。1644年,梅森在其著作中提出了他认为的四个2p-1型素数:M31、M67、M127和M257,这就是著名的“梅森断言”。梅森在提出“断言”四年之后就去世了。后来人们从梅森的断言中找到了不少错漏,并没有把任何一个2p-1型素数的“
发现权”归属于他。不过,人们为了纪念梅森在2p-1型素数研究中所做的开创性工作,以后就把这种类型的素数称为“梅森素数”。
手算笔录的时代,每前进一步,都显得格外艰难。1772年,
瑞士大数学家莱昂哈德·欧拉(1707~1783)在双目失明的情况下,靠心算证明了的确是素数。这是人们找到的第8个梅森素数,它共有10位数,堪称当时世界上已知的最大素数。欧拉还证明了欧几里得关于完全数定理的
逆定理:所有的偶完全数都具有2p-1(2p-1)的形式,其中2p-1是素数。这表明梅森素数和偶完全数是
一一对应的。
梅森素数的研究在100年后又有了新的进展。19世纪70年代,法国数学家
爱德华·卢卡斯(1842~1891)提出了一个用来判别Mp是否为素数的重要定理——卢卡斯定理,为梅森素数的寻找提供了有力的工具。1876年,卢卡斯证明确实也是素数,这是人们靠手工计算发现的最大梅森素数,长达39位。
至此,梅森的断言已有两个是正确的。然而——
19世纪末至20世纪初,人们利用卢卡斯定理又陆续找到了三个梅森素数。1883年,
俄国数学家伊凡·波佛辛(1827~1900)证明也是素数——这是梅森遗漏的。梅森还漏掉另外两个素数和,它们分别在1911年和1914年被美国业余数学家拉尔夫·鲍尔斯(1875~1952)发现。
梅森的断言还有两处错误。1876年,卢卡斯第一个否定了“M67为素数”这一自梅森断言以来一直被人们相信的结论,但他并未找到其因子。直到1903年,才由数学家柯尔(1861~1926)算出M67=193707721×761838257287。1922年,数学家克莱契克(1882~1957)验证了M257并不是素数,而是合数。
在手工计算的漫长年代里,人们历尽艰辛,一共只找到12个梅森素数。
计算机时代
20世纪30年代,美国数学家德里克·莱默(1905~1991)改进了卢卡斯的工作,给出了一个针对Mp的新的素性测试方法,即
卢卡斯-莱默检验法:Mp>3是素数
当且仅当Lp-2=0,其中L0=4,Ln+1= ( Ln2-2 ) modMp。这一方法非常适合于计算机运算,因此在“计算机时代”发挥了重要作用。
1952年1月30日晚,美国数学家拉斐尔·鲁滨逊(1911~1995)在莱默指导下将此方法编译成计算机
程序,利用
加州大学洛杉矶分校的SWAC型计算机,几小时内就找到了两个100位以上的梅森素数和。SWAC即标准西部自动计算机,是当时运算速度最快的计算机之一。随后的几个月,鲁滨逊使用该计算机又接连找到、和。
计算机的出现使梅森素数的搜寻如虎添翼,各国科学家和业余研究者们于是纷纷投身到寻找梅森素数的队伍中。他们彼此竞争,乐此不疲,催生了不少新发现。1957年9月,第18个梅森素数被
瑞典数学家汉斯·黎塞尔(1929~2014)使用BESK型计算机找到;1961年11月,和被美国数学家亚历山大·赫维茨(1937~)使用
IBM-7090型计算机在同一天找到,这两个梅森素数仍是加州大学洛杉矶分校的发现。
1963年5月,美国数学家唐纳德·吉里斯(1928~1975)利用
大型计算机连续找到和。1963年6月2日晚,当吉里斯找到第23个梅森素数时,
美国广播公司中断了正常的节目播放,在第一时间发布了这一重要消息。发现这一素数的美国
伊利诺伊大学数学系全体师生感到无比骄傲,为了让世界各地的人们都分享这一成果,他们把所有从系里发出的信件都敲上了“M11213是个素数”的
邮戳。
20世纪60年代中期,以IBM-360为代表的
第三代计算机的出现加快了梅森素数的寻找步伐,但随着指数p值的增大,每一个梅森素数的产生反而更加艰难。1971年3月4日晚,美国数学家
布莱恩特·塔克曼(1915~2002)使用IBM-360/91型计算机,时隔近8年终于找到新的梅森素数。美国
哥伦比亚广播公司如法炮制,也在第一时间报道了这一发现。
而到1978年10月底,世界几乎所有的大新闻机构(包括中国的新华社)都争相报道了以下消息:两名年仅18岁的
美国高中生兰登·诺尔和尼克尔在Cyber-174型计算机上运行他们自己编写的计算程序,经过350小时的持续运算找到了第25个梅森素数。
次年2月,诺尔再接再厉又找到第26个梅森素数。
伴随数学理论的发展,为寻找梅森素数而使用的计算机功能也越来越强大,其中就包括著名的
超级计算机Cray系列。1979年4月8日,美国克雷公司的计算机专家大卫·史洛温斯基和纳尔逊使用Cray-1型计算机找到超过1万位的梅森素数;史洛温斯基自己使用经过改进的Cray-XMP型计算机在1982年至1985年间又接连找到、和,但他未能确定在这一区间是否还有异于M132049的梅森素数。
1988年1月,科尔奎特和韦尔什使用NEC-SX2型超高速
并行计算机果然发现“漏网之鱼”。沉寂四年之后,哈维尔实验室(英国原子能技术权威机构)的一个研究小组突然宣布他们于1992年2月19日找到新的最大素数,位数超过20万位。而为了得到这一成果,他们运行计算机超过两年时间,动用了12万英镑的经费。看来梅森素数探寻之路正变得离普通人越来越远······
此前人们知道的
最大素数是1989年发现的391581×2216193-1,不是梅森素数。M756839的发现宣告梅森素数又重新登上了已知最大素数的宝座。此后这一宝座一直由梅森素数牢牢占据,再未旁落。
人们在寻找梅森素数的同时,对其重要性质——分布规律的研究也在进行着。梅森素数已发现的数量很少,且人们对其无穷性尚未可知,因此探索它的分布规律似乎比寻找新的梅森素数更为困难。数学家们在长期的实践中,曾提出过一些关于
梅森素数分布的猜测,但他们的猜测都以近似
表达式给出,且与实际情况的接近程度均未尽如人意。中国学者
周海中根据已知的梅森素数及其排列,于1992年2月也提出了一个关于梅森素数分布的猜想,并首次给出其分布的精确表达式,受到人们关注。这一猜想后来被国际数学界命名为“
周氏猜测”。
1994年1月4日,史洛温斯基和盖奇为克雷公司再次夺回发现已知最大素数的桂冠——这一素数是。而下一个梅森素数仍是他们的成果。史洛温斯基由于发现7个梅森素数,而被人们誉为“素数大王”。1996年9月发现的M1257787是迄今为止最后一个由超级计算机发现的梅森素数,研究人员使用了Cray-T94,这也是人类发现的第34个梅森素数。
互联网时代
使用超级计算机寻找梅森素数实在太昂贵了,而且可以参与的人也有限,网格这一崭新技术的出现使梅森素数的探寻又重新回到了“人人参与”的大众时代。20世纪90年代中后期,在美国程序设计师沃特曼和库尔沃斯基等人的共同努力下,建立了世界上第一个基于互联网的
分布式计算项目——因特网梅森素数大搜索(
GIMPS)。人们只要在GIMPS的主页上下载一个计算梅森素数的免费程序,就可以立即参加该项目来搜寻新的梅森素数。
1996年至1998年,GIMPS项目找到了3个梅森素数:、和,其发现者来自法国、英国和美国。
1999年6月1日,美国
密歇根州普利茅斯的数学爱好者纳扬·哈吉拉特瓦拉通过GIMPS项目找到第38个梅森素数。这是20世纪发现的最后一个梅森素数,也是人们知道的第一个超过100万位的素数。哈吉拉特瓦拉使用的只是一台普通的奔腾II型计算机。虽然这台计算机自身的性能并不高,但由于分布式计算
网络连接了当时世界上数以万计的普通计算机,因此总运算速度仍然和超级计算机相当。
进入21世纪,随着
个人计算机的进一步普及和计算速度的提升,人们又找到不少更大的梅森素数。2001年11月14日,一名20岁的加拿大青年迈克尔·卡梅伦找到,拉开了新世纪寻找梅森素数的序幕。此后在2003年至2006年间,GIMPS项目又相继发现5个梅森素数:、、、和,已知最大素数纪录距离1000万位大关越来越近。
2008年8月23日,美国
加州大学洛杉矶分校的计算机专家埃德森·史密斯终于发现超过1000万位的梅森素数。这是该校发现的第8个梅森素数。它有12978189位数,如果用普通字号将这个超大素数连续打印下来,它的长度可超过50公里!这一成就被美国的《
时代》杂志评为当年“50项最佳发明”之一,排名在第29位。发现者史密斯还赢得了由EFF颁发的10万美元大奖。
此后一年内,又有两个稍小的梅森素数被德国和挪威的志愿者先后找出。距史密斯的发现仅相隔两个星期,而2009年6月找到的与史密斯发现的素数相比“仅”相差14万位数。这是继1988年后梅森素数再一次“不按顺序”发现。
2013年和2016年,美国
中央密苏里大学数学教授
柯蒂斯·库珀利用校区内的800多台电脑连续发现了两个梅森素数和。后者其实早在2015年9月就已经被电脑计算出结果,但直到2016年1月人们才注意到,使得这个梅森素数的发现日期往后推迟了三个多月。库珀通过GIMPS项目总共发现了四个梅森素数,成为新的“素数大王”。库珀的成功在世界范围内又掀起了探寻梅森素数的新一轮热潮。
2017年12月26日,加入GIMPS项目已有14年的美国志愿者乔纳森·佩斯找到了人类已知的第50个梅森素数。为纪念这一里程碑式的重大发现,日本一家出版社还发行了一本名为《
2017年最大的素数》的书。然而时隔仅一年,已知最大素数纪录就被再次刷新。新的纪录是,由美国
佛罗里达州奥卡拉的帕特里克·拉罗什在2018年12月7日发现。这已是GIMPS项目23年间发现的第17个梅森素数。
2021年10月6日,在发现M57885161超过8年后,已确定该数为第48个梅森素数。
梅森素数表
至2024年10月,总计发现52个梅森素数。现把它们的数值、位数、
发现时间、
发现者等列表如下:
M1~M12
M13~M34
M35~M52
注:
GIMPS项目
1996年初,美国数学家和
程序设计师乔治·沃特曼(George Woltman)编制了一个名为
Prime95的梅森素数计算程序,并把它放在网页上供数学家和数学爱好者免费使用,这就是闻名世界的“
因特网梅森素数大搜索”项目,简称
GIMPS。该项目采取
网格计算方式,利用大量普通计算机的
闲置时间来获得相当于
超级计算机的
运算能力。1997年美国数学家及程序设计师斯科特·库尔沃斯基(Scott Kurowski)和其他人建立了“素数网”(PrimeNet),使分配搜索区间和向GIMPS发送报告自动化。一个庞大的数据库记录着所有任务的分配情况和计算报告,如果某个交回的计算报告显示发现了一个新的梅森素数,还需经过一个专门机构用不同算法验证才能被正式确认。
为了激励人们寻找梅森素数和促进
网格技术发展,总部设在美国
旧金山的
电子前沿基金会(EFF)于1999年3月向全世界宣布,为通过GIMPS项目来寻找新的更大的梅森素数而设立“
协同计算奖”。它规定向第一个找到超过100万位数的个人或机构颁发5万美元(已颁发)。后面的奖金依次为:超过1000万位,10万美元(已颁发);超过1亿位,15万美元;超过10亿位,25万美元。此外,梅森素数的发现者还可以从GIMPS中获得至少3000美元的奖励。但其实绝大多数志愿者参与该项目并不是为了金钱,而是出于乐趣、荣誉感和探索精神。
目前人们通过GIMPS项目已找到17个梅森素数,其发现者来自美国、英国、法国、德国、
加拿大和
挪威。世界上有190多个
国家和地区超过60万人参加了这一
国际合作项目,并动用了上百万台计算机(
CPU)联网来寻找新的梅森素数。该项目的
计算能力已超过当今世界上任何一台最先进的超级矢量计算机的计算能力,
运算速度可达到每秒850万亿次。著名的《
自然》杂志说:GIMPS项目不仅会进一步激发人们对梅森素数寻找的热情,而且会引起人们对
网格技术应用研究的高度重视。
意义
梅森素数自古以来就是数论研究的一项重要内容,历史上有不少大数学家都专门研究过这种特殊形式的素数。自古希腊时代起直至17世纪,人们寻找梅森素数的意义似乎只是为了寻找完全数。但自梅森提出其著名断言后,特别是欧拉证明了欧几里得关于完全数定理的逆定理以来,偶完全数已仅仅是梅森素数的一种“副产品”了。
寻找梅森素数在当代已有了十分丰富的意义。寻找梅森素数是发现已知最大素数的最有效途径。自欧拉证明M31为当时最大的素数以来,在发现已知最大素数的世界性竞赛中,梅森素数几乎囊括了全部冠军。
寻找梅森素数是测试计算机
运算速度及其他功能的有力手段,如M1257787就是1996年9月美国克雷公司在测试其最新超级计算机的运算速度时得到的。梅森素数在推动计算机功能改进方面发挥了独特作用。发现梅森素数不仅需要高功能的计算机,还需要素数判别和
数值计算的理论与方法以及高超巧妙的程序设计技术等等,因此它的研究推动了“数学皇后”——数论的发展,促进了
计算数学和程序设计技术的发展。
寻找梅森素数最新的意义是:它促进了
分布式计算技术的发展。从最新的17个梅森素数是在因特网项目中发现这一事实,可以想象到网络的威力。
分布式计算技术使得用大量个人计算机去做本来要用超级计算机才能完成的项目成为可能,这是一个前景非常广阔的领域。它的探究还推动了
快速傅里叶变换的应用。
梅森素数在实用领域也有用武之地,人们已将大素数用于现代密码
设计领域。其原理是:将一个很大的数分解成若干素数的乘积非常困难,但将几个素数相乘却相对容易得多。在这种密码设计中,需要使用较大的素数,素数越大,密码被破译的可能性就越小。
由于梅森素数的探究需要多种学科和技术的支持,也由于发现新的“大素数”所引起的国际反响,使得对于梅森素数的研究能力已在某种意义上标志着一个国家的科技水平,而不仅仅是代表数学的研究水平。英国顶尖科学家、
牛津大学教授马科斯·索托伊曾表示:梅森素数的研究进展是科学发展的一个重要方面,人们期待一位当今的欧几里得来证明梅森素数永不枯息。
梅森素数这颗数学海洋中的璀璨明珠正以其独特的魅力,吸引着更多的有志者去寻找和研究。
理论探索
2017年12月张苗宝发现了梅森素数的分布规律,并给出了比较精准的
计算公式。
梅森素数的计算公式
3*5/3.8*7/5.8*11/9.8*13/11.8*......*P/(P-1.2)-1=M
P是梅森数的指数,M是P以下的梅森素数的个数。
指数5,计算2.947,实际3,误差0.053;
指数7,计算3.764,实际4,误差0.236;
指数13,计算4.891,实际5,误差0.109;
指数17,计算5.339,实际6,误差0.661;
指数19,计算5.766,实际7,误差1.234;
指数31,计算6.746,实际8,误差1.254;
指数61,计算8.445,实际9,误差0.555;
指数89,计算9.201,实际10,误差0.799;
指数107,计算9.697,实际11,误差1.303;
指数127,计算10.036,实际12,误差1.964;
指数521,计算13.818,实际13,误差-0.818;
指数607,计算14.259,实际14,误差-0.259;
指数1279,计算16.306,实际15,误差-1.306;
指数2203,计算17.573,实际16,误差-1.573;
指数2281,计算17.941,实际17,误差-0.941;
这个公式是根据梅森素数的分布规律得出的。万数1为首,1被除外了,所以要减去1。在不考虑重叠问题,应该P减1就可以了,这里已考虑重叠问题,所以就P减1.2.在梅森数的指数渐渐增大,1.2是否合适,还要等实际检验。
所有的
奇素数都是准梅森数(2^N-1)的因子数和梅森素数,则
梅森合数的因子数是只有素数中的一部分。
在2^N-1的数列中,一个素数作为素因子第一次出现在指数N的数中,这个素数作为因子数在2^N-1数列中就以N为周期重复出现。在这种数列中指数是
偶数的都等于3乘以四倍金字塔数。
在2^N-1数列中,指数大于6的,除梅森素数外,都有新增一个或一个以上的素数为因子数,新增的梅森合数的因子数减1能被这个指数
整除。
一个梅森合数的因子数第一次出现在一个梅森合数中:并以这个梅森合数的指数为周期反复出现以后的准梅森合数中,
一个是梅森素数的素数,它永远不是梅森合数的因子数。
一个是前面的梅森合数的因子数的素数,它永远不会是后面的梅森合数的因子数。
所有梅森合数的因子数减1都能被这个梅森合数的指数整除,商是偶数。
一个素数在不是梅森合数的准梅森数中第一次以因子数出现,这个素数减1能被这个准梅森数的指数整除,但也有例外,商不一定是偶数。
梅森素数都在[4^(1-1)+4^(2-1)+4^(3-1)+......+4^(n-1)]*6+1数列中,括符里种数暂叫四倍金字塔数。
凡是一个素数是四倍金字塔数的因子数,以后就不是梅森合数的因子数。
在4^(1-1)+4^(2-1)+4^(3-1)+......+4^(n-1)数列中的数,有不等于6NM+-(N+M)的数乘以6加上1都是梅森素数。
在2^P-1
平方根以下的素数都以素因子在以前准梅森数中出现了,那这个梅森数没有因子数,它必是梅森素数。但它的
逆定理是不成立的。如果还没有出现在以前的准梅森数中的素数,它也不定是梅森合数的因子数。
梅森合数的因子数都是8N+1和8N-1形的素数。
试证梅森素数
在指数n是无限多的2^n-1数列中梅森数和梅森素数只占其中的很少比例。
根据
费马小定理,每一个奇素数都会以数因子出现在2^n-1数列中,只不过有些提前出现,有些最后出现。只有梅森素数是最早出现在这个数列中的。其他有素数都不会最早出现,最迟出现的素数是在本数减1的数中,也就是费马小定理的地方。
每一个奇素数都十分有规律作为因子数出现在2^n-1数列中,一个素数第一次出现在2^n-1数中(包括梅森素数),这个素数就以n为周期反复出现在2^n-1数列中,如3第一次出现在n=2中,指数能被2整除的都有3的因子数;7第一次出现在n=3,指数能被3整除的都有7的因子数;5第一次出现在n=4中,指数能被4整除都有5的因子数。一个素数出现在2^n-1数列n中,不管n是素数不是素数,只要用小于n的全部奇素数去筛,指数n都在其中。如果是合数与前面的素数是重叠的,所以不用重筛了。
要筛完2^n-1数列中所有数因子,必需用少于或等于2^n-1平方根以内的所有素数去筛,这样剩下没有筛的就是梅森素数了。
2^n-1的数列是无限多的,无限多的
自然数任你筛多少次的几分之一,永远是无限多的。所以梅森素数是无限多的。
根据
费马小定理,每一个奇素数都会以素因子的身份出现在2^n-1数列中,只不过有些出现早,有些出现迟。
每一个奇素数第一次出现在2^n-1数列指数n的数中,这个n就是这个素数的
对应数,它就以n为周期反复出现。
已经知道梅森素数都出现在梅森数中。只要筛去梅森数中的梅森合数,剩下就是梅森素数。
将梅森数列展开,从3的对应数2开始,2点一点;5的对应数是4,4是合数,就不用操作;7的对应数是3,在3点一点;11的对应数是10,是合数,不用操作;13的对应数是12,12是合数,不用操作;这样一直点下去,点到梅森数的指数以前的数都能筛净。凡是一个梅森数点上两次和两次以上的都给划去,剩下就是只有点一次的梅森数了,这些梅森数全是梅森素数。
这个筛法在素数很大时找它的对应数有点困难。