1,2,3,4,5⋯⋯这些正整数叫做“自然数”。我们在逐个清点物品的数量时,就会按照顺序默念这些自然数。除了1和素数之外的其他自然数全都可以用若干个素数的乘积来表示。例如,自然数30等于2×3×5。而且,如果不考虑乘数的次序的话,这种表示还是惟一的。因此,可以说素数是“构成数的原子”。素数之外的其他自然数则叫做“合数”。
是否存在着求素数的“公式”?
从1开始的那些不太大的素数,它们按照从小到大的顺序逐个出现,好像显示了某种规律性。其实,它们在自然数中的分布毫无规律。古希腊的数学家欧几里得在大约2300年前所写的《几何原本》中就记述了这种素数。尽管已经研究了2000多年,可是直到现在,数学家也不知道素数的分布是否遵守某种严格的规律。
“素数圆”所显示的规律性和无规律性
这个圆图叫做“素数圆”。这是从1开始将自然数沿顺时针方向依次排列形成的圆圈,每圈排满24个数,便向外挪移再开始排列另一个圆圈。图上各个黄色小椭圆内的红色数字就是素数。可以看出,素数都位于一些特定的从中心向外辐射的直线上,而在其他的辐射线上却没有素数(只有2和3是例外)。如此看来,素数的排列好似显示了某种规律性。但是,仔细看素数所在的那些直线,素数在直线上的分布却十分凌乱,完全看不出有什么规律。从这个素数圆我们也可以认识到素数的性质十分奇特。
在素数圆上,素数的分布好像显示了某种规律性,但是毕竟很不严格。把握素数出现的规律,当然最好是能够推导出一个可以用来求出一切素数的公式。这一直是许多数学家的梦想。
虽然不知道怎样求出一切素数,数学家却已经发现了一些可以求出一部分素数的公式。德国数学家莱昂哈德·欧拉(1707〜1783)发现:“某个数与比它大1的数相乘,再加上41,就能得到一个素数”。例如“某个数”为5,那么5×(5+1)+41=71,71就是素数。不过,按照欧拉的这个公式,并不是“某个数”为任何数都能得到素数。比如当“某个数”为40时,得到的就不是素数。
最古老的求素数的惟一方法
保证能够确实挑选到素数的惟一方法是古老的“埃拉托塞尼筛法”。这是古希腊数学家埃拉托塞尼(约前275〜前194)想出来的一种方法。
这种方法是先依次写出2和2以上的自然数(当然无法写至无穷,只能写至某个比较大的数),每写满十个数换一行再写。然后,留下头一个2不动,剔除掉所有2的倍数。接着,在剩余的数中留下2后面的一个数3不动,剔除掉所有3的倍数。接下来,再在剩余的数中对3后面的一个数5作同样处理⋯⋯依次进行同样的剔除。剔除到最后,剩下来的便全都是素数。
这种方法非常简单,即使现在,也还没有能够保证所得到的数确实是素数的其他方法。
巨大的素数难以鉴别
你家里有固定电话,或者随身携带有手机,它们的电话号码是不是素数呢?如果不是素数,它又是哪些素数的乘积呢?
把某个自然数表示为若干个素数的乘积,这项工作叫做“素因子分解”。这就好像将一个数分解为组成它的那些“原子”。对某一个数进行素因子分解,也就是要找出能够作为除数将该数除尽的那些素数。先用小的素数试除,如果除不尽,再用较大的素数进行试除。用这种方法就可逐个找出能够除尽某个数的素数。
对于不大的数,进行这种素因子分解没有什么困难。然而,对于大的自然数,实际做起来就会越来越难。这是因为,经常会出现用小的素数除不尽的情况。换句话说,只有找到了更大的素数,才能够完成对非常大的自然数的素因子分解。可是,寻找大的自然数,基本上只有埃拉托塞尼筛法可用。对于非常大的自然数,即使利用计算机进行计算,进行这种素因子分解也需要花很长的时间。
利用进行素数因子分解的这种困难反而成就了现代社会少不了的一项技术,这就是“RSA密码”技术。这是一种将很大的两个素数的乘积数用作“密钥”,对重要信息进行加密的一种编制密码的技术。不知道作为密钥的数是由哪两个大素数相乘,就无法解读被加密的信息。然而,对一个巨大的数进行素因子分解根本不可能在短时间内完成,因此,除了知道原来两个素数的人,局外人即使得到了加密信息,也无法解读。这种RSA密码技术现在已经广泛应用在比如说刷卡消费时信用卡号码的传输上,以防止他人盗取有关资料。还已经应用在付费电视传送等领域。总之,素数已经进入到了现代社会的日常生活。
那么,现在已经知道的最大素数是多大呢?在2008年找到的这个最大素数约有1300万位。它属于叫做“梅森数”的一类特殊数。对于梅森数,不用埃拉托塞尼筛法也可以判断它是不是素数。属于梅森数的素数叫做“梅森素数”。不过,即使在计算机上鉴别一个梅森数是否是素数也需要花很长的时间。2008年新找到的这个最大素数有一个专门名称“GIMPS”(Great Internet Mersenne Prime Search 互联网梅森素数)。它是许多人通过互联网用计算机协同进行计算集体发现的。
(本文发表于《科学世界》2011年2期)
请 登录 发表评论