第三章 素数的滥用
后,任何人只要他愿意就可以给我寄编成密码的信。因为只有我一人知道那两个素数除数,因此也只有我才能轻易地破译那些信件。然而,这种密码系统起作用的惟一原因是数论学家迄今依然不知如何将巨大的合成数化成构成它们的素数。
佐治亚大学著名的素数学家卡尔·波梅兰斯说:“这种密码系统是对无知的利用。由于这种密码,更多的人卷入了对数论的研究。而致力于研究分解因子问题(寻找素数除数)而未获成功的数学家愈多,这种密码就愈可靠。”因此,这种密码系统的成功又以另一种方式仰赖于数论:要确认那相乘的100位数的素数必须运用尖端的数学方法。
既然素数处于密码学的显要位置,我想考察一下关于素数何为已知的,以及何为未知的。很久以前,欧几里得就证明素数是无限多的。他2,300年前的证明依然是数学简明而别致的范例。
欧几里得说,我们假设素数是有限的,那么其中之一——我们称之为P——就会是最大的。现设有一个比P大的数Q,Q等于1加上从1到P所有整数的积。换句话说,Q=1+1×2×3……×P。对于Q来说,很明显,从2到P的所有整数都不能整除它;每次除都会得出余数1。如果Q不是素数,它就会被某个比P大的素数整除。相反,如果Q是素数的话,Q本身就是一个比P大的素数。两种可能性都意味着比最大素数还要大的素数的存在。这当然就意味着,“最大的素数”这概念是虚设的。但如果没有这样一个怪数,素数就一定是无限的。
长期以来,数学家们一直梦想着发现一种公式,运用这个公式代入从0到无穷大的n的整数值就可以得出所有素数。18世纪的大数学家列奥纳德·欧拉反复考虑用那个诱人的简单公式n2+n+41。如n=0,该公式则得出素数41;如n=1,得素数43;n=2得素数47。的确,当n为0至39中连续的整数值时,欧拉公式得出的全是素数。但如n=40时,这一公式突然不灵了。其得数1,681是41的平方。
欧拉公式
1963年,曾在洛斯阿拉莫斯从事早期原子弹研制性工作的卓越数学家斯坦尼斯劳·乌拉姆在一片纸上随意写出一串数字,它们是连续的整数,从1开始呈方形螺旋地向外扩展:
乌拉姆的小草笺
使他震惊的是,草笺中的素数——我已用线标了出来——都落在了对角纸上。乌拉姆受到这种偶然发现的鼓舞便与两个助手马克·韦尔斯和迈伦·斯坦一起研究从除了1之外的整数开始的方形螺线。从41到44的整数也构成了一个螺线。同样,素数也常常落在对角线上。从421至383这条长对角线与由欧拉的n2+n+41的公式所得出的素数是相对应的。
乌拉姆的大草笺
1963年,洛斯阿拉莫斯的马尼艾克二型主机储存了前9,000万个素数。“在洛斯阿拉莫斯我们也有一台第一流的图解计算设备,”韦尔斯回忆说,“因此我们对用计算机绘出素数图式感到异常激动。”马尼艾克二型为1,000万以下的所有素数都绘出方形螺线图。果然,许多数都神奇地出现在对角线上。
欧拉公式n2+n+41在n为大数值时证明有令人震惊之效。马尼艾克二型计算出,在1,00O万以下的所有素数中,该公式可得出占总素数的47.5%。而当n值较低时,该公式工作得更有成效。当n值小于2,398时,得素数的机会一半对一半。而当n值小于100时,该公式得出86个素数,合成数只有14个。
乌拉姆和助手们还发现了其他几乎与欧拉公式同样有效的生成素数的公式。公式4n2+170n+1,847计算1,000万以下素数的成功率为46.6%,并得出760个欧拉公式所不能推出的素