2004年5月15日,美国国家海洋和大气局顾问、数学爱好者乔希 · 芬德利 (Josh Findley)用一台装有2.4GHZ奔腾处理器的个人计算机,找到了目前世界上已知的最大梅森素数。该素数为224036583-1,它有7235733位数,如果用普通字号将这个数字连续写下来,它的长度可达3万米!它是2000多年来人类发现的第41个梅森素数,也是目前已知的最大素数。世界上许多著名的新闻媒体和科学刊物都对这一消息进行了报道和评介,认为这是数学研究和计算技术中最重要的突破之一。

也许会有人感到奇怪:素数不就是在大于1的整数中只能被1和其自身整除的数吗?在数学和计算机科学高度发达的今天,为什么发现一个已知的最大素数竟如此困难?找到一个已知的最大梅森素数竟成了科学上的大事?是的,魅力无穷的梅森素数具有许多特异的性质和现象,千百年来一直吸引着众多的数学家和数学爱好者对它进行研究;虽然已经揭示了一些规律,但围绕着它仍然有许多未解之谜,等待着人们去探索。

法国数学家马林·梅森

梅森素数的由来马林 · 梅森(Marin Mersenne,1588~1648)是17世纪法国著名的数学家和修道士,也是当时欧洲科学界一位独特的人物。他与大科学家伽利略、笛卡儿、费马、帕斯卡、罗伯瓦、迈多治等是密友。虽然梅森致力于宗教,但他却是科学的热心拥护者,在教会中为了保卫科学事业做了很多工作。他捍卫笛卡儿的哲学思想,反对来自教会的批评;也翻译过伽利略的一些著作,并传播他的理论;梅森曾建议用单摆来计时,以测量物体沿斜面滚下所需时间,从而使惠更斯发明了钟摆式时钟。

梅森对科学所作的主要贡献是他起了一个极不平常的思想通道作用。17世纪时,科学刊物和国际会议等还远远没有出现,甚至连科学研究机构都没有创立,交往广泛、热情诚挚和德高望众的梅森就成了欧洲科学家之间联系的桥梁。许多科学家都乐于将成果寄给他,然后再由他传递给更多的人。因此,他被人们誉为“有定期学术刊物之前的科学信息交换站”。梅森和数学家笛卡儿、费马、罗伯瓦、迈多治等曾每周一次在梅森住所聚会,轮流讨论数学、物理等问题,这种民间学术组织被誉为“梅森学院”,它就是法兰西科学院的前身。

1640年6月,费马在给梅森的一封信中写道:“在艰深的数论研究中,我发现了三个非常重要的性质。我相信它们将成为今后解决素数问题的基础。”这封信讨论了形如2P-1的数(其中p为素数)。早在公元前300多年,古希腊数学家欧几里得就开创了研究2P-1的先河,他在名著《几何原本》第九章中论述完美数时指出:如果2P-1是素数,则2P-12P-1)是完美数。梅森在欧几里得、费马等人的有关研究的基础上对2P-1作了大量的计算、验证工作,并于1644年在他的《物理数学随感》一书中断言:对于p=23571317193167127257时,2P-1是素数;而对于其他所有小于257的数时,2P-1是合数。前面的7个数(即2357131719)属于被证实的部分,是他整理前人的工作得到的;而后面的4个数(即3167127257)属于被猜测的部分。不过,人们对其断言仍深信不疑,连大数学家莱布尼兹和哥德巴赫都认为它是对的。虽然梅森的断言中包含着若干错误(后文详述),但他的工作极大地激发了人们研究2P-1型素数的热情,使其摆脱作为完美数的附庸地位。可以说,梅森的工作是素数研究的一个转折点和里程碑。由于梅森学识渊博,才华横溢,为人热情以及最早系统而深入地研究2P-1型的数,为了纪念他,数学界就把这种数称为“梅森数;并以Mp记之(其中M为梅森姓名的首字母),即Mp=2P-1。如果梅森数为素数,则称之为“梅森素数(即2P-1型素数)。

梅森素数貌似简单,而研究难度却很大。它不仅需要高深的理论和娴熟的技巧,而且需要进行艰巨的计算。即使属于“猜测”部分中最小的M31=231-1=2147483647,也具有10位数。可以想象,它的证明是十分艰巨的。正如梅森推测:“一个人,使用一般的验证方法,要检验一个15位或20位的数字是否为素数,即使终生的时间也是不够的。”是啊,枯燥、冗长、单调、刻板的运算会耗尽一个人的毕生精力,谁愿让生命的风帆永远在黑暗中颠簸!人们多么想知道梅森猜测的根据和方法啊。然而年迈力衰的他来不及留下记载,四年之后就去世了;人们的希望与梅森的生命一起泯灭在流逝的时光之中。看来,伟人的“猜测”只有等待后来的伟人来解决了。

充满艰辛与乐趣的探索历程

梅森素数就像数学海洋中的一颗璀璨明珠,吸引着一代又一代的研究者去探寻。自梅森提出其断言后,人们发现的已知最大素数几乎都是梅森素数;因此,寻找新的梅森素数的历程也就几乎等同于寻找新的最大素数的历程。而梅森断言为素数而未被证实的几个Mp当然首先成为人们研究的对象。

瑞士数学家欧拉

1772年,瑞士数学家欧拉在双目失明的情况下,靠心算证明了M31是一个素数,它共有10位数,堪称当时世界上已知的最大素数。

欧拉的毅力与技巧令人赞叹不已,他因此获得了“数学英雄”的美誉。这是寻找已知最大素数的先声。欧拉还证明了欧几里得关于完美数的定理的逆定理,即:每个偶完美数都具有形式2P-12P-1),其中2P-1是素数。这就使得偶完美数完全成了梅森素数的“副产品”了。欧拉的艰辛给人们提示:在伟人难以突破的困惑面前要想确定更大的梅森素数,只有另辟蹊径了。

100年后,法国数学家鲁卡斯提出了一个用来判别Mp是否是素数的重要定理——鲁卡斯定理。鲁卡斯的工作为梅森素数的研究提供了有力的工具。1883年,数学家波佛辛利用鲁卡斯定理证明了M61也是素数——这是梅森漏掉的。梅森还漏掉另外两个素数:M89M107,它们分别在1911年与1914年被数学家鲍尔斯发现。

1903年,在美国数学学会的大会上,数学家柯尔作了一个一言不发的报告,他在黑板上先算出267-1,接着又算出193707721×761838257287,两个结果相同。这时全场观众站了起来为他热烈鼓掌,这在美国数学学会开会的历史上是绝无仅有的。他第一个否定了“M67为素数”这一自梅森断言以来一直被人们相信的结论。这短短几分钟的报告却花了柯尔3年的全部星期天。1922年,数学家克莱契克进一步验证了M257并不是素数,而是合数(但他没有给出这一合数的因子,直到20世纪80年代人们才知道它有3个素因子)。

1930年,美国数学家雷默改进了鲁卡斯的工作,给出了一个针对Mp的新的素性测试方法,即鲁卡斯-雷默方法:Mp>3是素数的充分必要条件是Lp-2=0,其中L0=4Ln+1=Ln-2ModMp这一方法直到今天的“计算机时代”仍发挥着重要作用。

在“手算笔录时代”,人们历尽艰辛,仅找到12个梅森素数。而计算机的产生使寻找梅森素数的研究者如虎添翼。1952年,数学家鲁滨逊等人将鲁卡斯-雷默方法编译成计算机程序,使用SWAC型计算机在短短几小时之内,就找到了5个梅森素数:M521、M607、M1279、M2203和M2281。其后,M3217在1957年被黎塞尔证明是素数;M4253和M4423在1961年被赫维兹证明是素数。1963年,美国数学家吉里斯证明M9689和M9941是素数。1963年9月6日晚上8点,当第23个梅森素数M11213通过大型计算机被找到时,美国广播公司(ABC)中断了正常的节目播放,以第一时间发布了这一重要消息;发现这一素数的美国伊利诺伊大学数学系全体师生感到无比骄傲,以致于把所有从系里发出的信件都敲上了“211213-1是个素数”的邮戳。

1971年3月4日晚,美国哥伦比亚广播公司(CBS)中断了正常节目播放,发布了塔可曼使用IBM360-91型计算机找到新的梅森素数M19937的消息。197810月,两名年仅18岁的美国高中生诺尔和尼科尔使用CYBER174型计算机找到了第25个梅森素数:M21701

随着素数P值的增大,每一个梅森素数Mp的产生都艰辛无比;而各国科学家及业余研究者们仍乐此不疲,激烈竞争。1979223日,当美国克雷研究公司的计算机专家史洛温斯基和纳尔逊宣布他们找到第26个梅森素数M23209时,人们告诉他们:在两个星期前诺尔已得到这一结果。为此,史洛温斯基潜心发愤,花了一个半月的时间,使用CRAY-1型计算机找到了新的梅森素数M44497。这个记录成了当时不少美国报纸的头版新闻。之后,这位计算机专家乘胜前进,使用经过改进的CRAY-XMp型计算机在1983年至1985年间找到了3个梅森素数:M86243M132049M216091。但他未能确定M86243M216091之间是否有异于M132049的梅森素数。而到了1988年,科尔魁特和韦尔什使用NEC-FX2型超高速并行计算机果然捕捉到了一条“漏网之鱼”——M110503。沉寂4年之后,1992325日,英国原子能技术权威机构——哈威尔实验室的一个研究小组宣布他们找到了新的梅森素数M7568391994114日,史洛温斯基和盖奇为其公司再次夺回发现“已知最大素数”的桂冠——这一素数是M859433。而下一个梅森素数M1257787仍是他们的成果。这一素数是使用CRAY-794超级计算机在1996年取得的。史洛温斯基由于发现7个梅森素数,而被人们誉为素数大王”。

使用超级计算机寻找梅森素数的游戏实在太昂贵了。1996年美国数学家及程序设计师乔治 · 沃特曼编制了一个梅森素数寻找程序,并把它放在网页上供数学家和数学爱好者免费使用。这就是著名的“因特网梅森素数大搜索”(GIMPS)项目。目前,全球有6万多名志愿者参加该项目,并动用20多万台计算机联网来进行大规模的分布式计算,以寻找新的梅森素数。看来,因特网联通的个人计算机要与高功能的超级计算机在计算技术上一较高低了。从1996年到2004年5月15日,GIMPS项目发现了7个梅森素数:M1398269M2976221M3021377M6972593M13466917M20996011M24036583,它们都是使用奔腾型计算机得到的结果。

时至今日止,人们已经发现了41个梅森素数,并且确定M6972593位于梅森素数序列中的第38位。现把它们列表如下:

由表可见,梅森素数的分布极不规则。我们甚至可以看到,连找到梅森素数的时间分布都极不规则,有时许多年未能找到一个,而有时则一下找到好几个。探索梅森素数的分布规律似乎比寻找新的梅森素数更为困难。数学家们在长期的摸索中,提出了一些猜想。英国数学家香克斯、美国数学家吉里斯和德国数学家伯利哈特就曾分别给出过关于梅森素数分布的猜测,但他们的猜测有一个共同点,就是都以近似表达式给出;而它们与实际情况的接近程度均未尽如人意。中国数学家及语言学家周海中经过多年的研究,于1992年首先给出了梅森素数分布的精确表达式,为人们寻找这一素数提供了方便;后来这一科研成果被国际数学界命名为“周氏猜测”。著名的《科学》杂志曾有一篇评论文章指出,这是梅森素数研究中的一项重大突破。

不久前,国际电子新领域基金会(IEFF)宣布了由一位匿名者资助的为通过GIMPS项目来寻找新的更大的梅森素数而设立的奖金。它规定向第一个找到超过1000万位数的个人或机构颁发10万美元。后面的奖金依次为:超过1亿位数,15万美元;超过10亿位数,25万美元。但据悉,绝大多数研究者参与该项目不是为了金钱而是出于好奇心、荣誉感和探索精神。可以相信,梅森素数这颗数海明珠正以其独特的魅力,吸引着更多的有志者去寻找和研究。

梅森素数的意义

自古希腊时代直至17世纪,人们寻找梅森素数的意义似乎只是为了寻找完美数。但自梅森提出其著名断言以来,特别是欧拉证明了欧几里得关于完美数的定理的逆定理以来,完美数已仅仅是梅森素数的一种“副产品”了。

寻找梅森素数在现代已有了十分丰富的意义。寻找梅森素数是发现已知最大素数的最有效的途径,自欧拉证明M31为当时最大的素数以来,在发现已知最大素数的世界性竞赛中,梅森素数几乎囊括了全部冠军。

寻找梅森素数是测试计算机运算速度及其他功能的有效手段。如M1257787就是1996年9月美国克雷公司在测试其最新超级计算机的运算速度时得到的。

梅森素数在推动计算机功能改进方面发挥了独特作用。发现梅森素数不仅仅需要高功能的计算机,它还需要素数判别和数值计算的理论与方法以及高超巧妙的程序设计技术等等,因而它还推动了数学皇后——数论的发展,促进了计算数学、程序设计技术的发展。

由于寻找梅森素数需要多种学科的支持,也由于发现新的“最大素数”所引起的国际影响使得对于梅森素数的研究能力已在某种意义上标志着一个国家的科学技术水平,而不仅仅是代表数学的研究水平。从各国各种传媒(而不仅仅是学术刊物)争相报道新的梅森素数的发现,我们也可清楚地看到这一点。

梅森素数在实用领域也有用武之地。现在人们已将大素数用于现代密码设计领域。其原理是:将一个很大的数分解成若干素数的乘积非常困难,但将几个素数相乘却相对容易得多。在这种密码设计中,需要使用较大的素数,素数越大,密码被破译的可能性就越小。

寻找梅森素数最新的意义是:它促进了分布式计算技术的发展。从最新的7个梅森素数是在因特网项目中发现这一事实,我们已可以想象到网络的威力。分布式计算技术使得用大量个人计算机去做本来要用超级计算机才能完成的项目成为可能;这是一个前景非常广阔的领域。

最后,有必要指出的是:素数有无穷多个,这一点早为欧几里得发现并证得。然而,梅森素数是否有无穷多个?这是目前尚未解决的数学难题;而揭开这一未解之谜,正是科学追求的目标。让我们以数学大师希尔伯特的名言来结束本文:“我们必须知道,我们必将知道。”

· 相关链接 ·

存在最大的素数吗?

上小学的时候,我们就知道所有的自然数可以分为素数(质数)和合数两类,当然还特别规定了“1既不是素数,也不是合数”。100以内的素数,从小到大依次是:2、3、5、7、11、13、17、19、……、83、89、97。不用说了,你一定会背下来。那么素数的个数是不是有限多的呢?在解决这个问题之前,我们先来看看另一个问题:怎样判断一个已知自然数是不是素数。比如,143是不是素数?你一定会按照下面这个步骤去判断:先用最小的素数2去除143,不能整除;再用3去试试,还是不行;再依次用5、7试试,还是不行;11呢?行!143=11×13,所以143不是素数,而是合数。所以,判断一个数是不是素数,只需用比这个数小的所有质数,依次去除它即可,如果都不能整除的话,这个数就一定是素数,相反为合数。这种方法所依据的原理是:每一个合数都可以表示成若干个素数的乘积。不用说,这叫做“分解质因数”,也是小学数学的知识。

我们先假设素数的个数是有限多的,那么必然存在一个“最大的素数”,设这个“最大的素数”为N。下面我们找出从1到N之间的所有素数,把它们连乘起来,就是:2×3×5×7×11×13×……×N把这个连乘积再加上1,得到一个相当大的数M:M=2×3×5×7×11×13×……×N+1那么这个M是质数还是合数呢?乍一想,不难判断,既然N是最大的质数,而且M>N,那么M就应该是合数。既然M是合数,就可以对M分解质因数。可是试一下就会发现,我们用从1到N之间的任何一个素数去除M,总是余1!这个现实,又表明M一定是素数。这个自相矛盾的结果,无非说明:最大的素数是不存在的!如果有一个足够大的素数N,一定可以像上面那样,找到一个比N更大的素数M。既然不存在最大的素数,就可以推知自然数中的素数应该有无限多个。