关灯
护眼
字体:

02 永无穷尽的素数(第1页)

章节目录保存书签

02永无穷尽的素数

镶嵌在数的拼图中的素数

我们怎样才能确定素数不会越来越稀少,最终逐渐消失殆尽呢?你可能会认为由于有无穷多自然数,而每一个都可以被分解为素数的乘积(这一点我们一会儿仔细解释),那么必然得有无穷多个素数才能承担这一工作。虽然这个结论是正确的,但它并不能从上述观察中得出。这是因为如果我们从有限个素数开始,仅使用这些给定的素因数,我们就能制造出无穷多不同的数。确实如此,任何单个素数都有无穷多个幂次。比如,素数2的幂分别为2,4,8,16,32,64,…因而完全可以设想:只有有限多的素数,每个数都是那些素数的幂的乘积。更糟的是,我们能构造出一个给定数的任意长度的幂数列,或它的任意多倍数列,却没法用同样的手段构造出一个由不同素数组成的无穷数列。对于素数,我们还是得去搜寻,到底怎么才能确定它们不会绝迹?

在这一章结束的时候,我们便会对这一点确定无疑了。首先,请你注意素数的一个值得一提的简单“规律”——除了2和3以外的每一个素数,都与一个6的倍数相邻。换句话说,在这两个数之后的每一个素数,都是像6n±1这样的形式,这里n是某个确定的数。(记住6n是6×n的缩写,符号“±”的意思是加或减。)原因很好理解,每个数都一定可以写成以下6种形式中的一种:6n,6n±1,6n±2,6n+3,因为没有数与6的某个倍数距离超过3。例如,17=(6×3)-1,28=(6×5)-2,57=(6×9)-3。事实上,这6个形式的数是循环出现的,这意味着当你写下任意6个连续的数,6种形式每个都会出现且仅出现1次。在这之后它们会一遍又一遍地循环出现,并且出现的顺序总是相同的。很显然6n和6n±2形式的数都是偶数。而任何形如6n+3的数都可以被3整除。因此,除了2和3,只有形如6n±1的数可能是素数。如果6n±1两者都是素数,这种情况恰好对应于孪生素数:比如(6×18)±1给出一对数107和109,我们在第1章中提到过它们。你可能会猜测每对6n±1中至少有1个是素数——这对于100以下的素数来说的确是对的,但往后不远就存在着第一个例外:(6×20)-1=119=7×17,(6×20)+1=121=11×11。当n=20时,这两个数都不是素数。

素数之所以重要,主要是因为每个数都可以写成一系列素数的乘积,并且这么做的方法本质上只有一种。为了找到这个特别的分解,我们只须用某种方法分解这个给定的数,接着继续分解在因数中出现的合数,直到这样的分解不能再继续为止。比如,我们可以说120=2×60,接着继续将合数因数60分解:

120=2×60=2×(2×30)=2×2×(2×15)

=2×2×2×3×5。

我们说120的素因数分解(primefactorization)为23×3×5,当然我们也可以用另一种途径得到这个结论。比如:

120=12×10=(3×4)×(2×5)

=[3×(2×2)]×(2×5)。

但如果将素因数从小到大重新排列,我们依然得到了与之前相同的结果:120=22×3×5。

至少在上面这个例子中分解的唯一性是真的。你可能或多或少已经熟悉数的这一性质,但是如何保证这个结论适用于每一个数?任何数都可以分解为素数的乘积,这已经足够清楚了。但是,一般来说有不止一种办法可以完成这个任务。那么我们如何确定这个过程总能给出相同的最终结果呢?这是一个重要的问题,因此我将花上一点儿时间概述一下推理的过程,从而使我们能绝对信赖这个结论的正确性。这个结果来自素数的一个特殊性质,我们叫它欧几里得性质(Euproperty):假设有一个由两个或更多数相乘得到的积,如果一个素数是该乘积的一个因数,那么它也是构成这个乘积的某个因数的因数。比如,7是8×35=280(也可以看作乘积280=7×40)的一个因数,同时我们注意到7也是35的一个因数。这个性质刻画了素数的特征,因为没有合数能够保证同样的结论成立。例如,我们可以看出6是8×15=120(也可以看作120=6×20)的一个因数,6却不是8或15的因数。

素数总是拥有以上性质,这一事实可以用被称为欧几里得算法[1](Eualgorithm)的推理来证明。我们将在第4章解释这个算法。如果我们暂且相信这个结果,那么就不难解释为什么不存在一个数拥有两个不同的素因数分解。假设存在拥有两个不同素因数分解的数,那么就存在一个最小的这样的数,让我们用n表示它。n有两种素因数分解。当把n的素因数从小到大排列的时候,这两个分解不相同。我们要证明这是矛盾的,因而假设一定为假。

值得一提的是,如果我们把数1包括在素数里,素因数分解的唯一性将不再成立。这是因为我们可以将1的任意幂次方乘上一个分解式,最后的积保持不变。这表明1和素数们有着本质上的不同。基于此,把1排除在素数的定义之外是正确的。

欧几里得:素数的无穷性

让我们回到这个问题:我们怎么知道素数无穷无尽,没有办法找到最大的素数?如果有人声称101是最大的素数,你即刻便能反驳他,因为你可以证明103没有因数(除了1和103以外),因此103是一个更大的素数。接下来你的朋友可能会承认自己大意了,他应该说103是所有素数中最大的。这时候你还可以指出107也是一个素数,从而再次表明他错了。然而你的朋友可能还是执迷不悟,他搬出你们所知的最大的素数。他甚至可能退一小步,承认自己并不知道最大的素数是多少,却继续说他很确定有这么一个数。

解决这个问题最好的方法是:对于任何假想的有限的素数集合,证明我们都能给出一个不在这个集合中的新的素数。比方说,如果有人号称在某个位置存在一个最大的奇数。你可以反驳说,假如n是奇数,那么n+2是一个更大的奇数,因而不可能有一个最大的奇数。然而,这个方法对于素数来说可就不那么简单了——给定一串有限的素数,我们没有办法使用这个集合来造出一个素数,并且表明它比集合中所有的数都大。那么,或许真的有一个最大的素数?我们怎么才能知道那位固执的朋友是不对的呢?

欧几里得是知道的。约公元前300年,希腊有个数学家叫亚历山大里亚的欧几里得(EuclidofAlexandria)。他就是一切作为定语使用的词“欧几里得”(Eu)本人。从给定一个集合p1,p2,…,pk(其中每个pi表示一个不同的素数),他也没能找到生成一个新的素数的途径,于是他退回一步,找到了一个更加微妙的论证方法。他证明了在某个给定的数的范围内,总是存在一个或更多的新素数(但他的论据并不足以让我们在那个范围内精确地定位素数)。

他的证明如下:设p1,p2,…,pk为前k个素数。考虑比所有这些素数的积还大1的数n,即n=p1p2…pk+1。n要么是一个素数,要么可以被一个小于它自身的素数整除。如果是后一种情况,这个素因数不可能是p1,p2,…,pk中的任意一个。因为假设p是p1,p2,…,pk中任意一个数,将n除以p会有余数1。于是可推知n的任何素因数都会是一个新的素数,并且比p1,p2,…,pk里面所有的素数都大,但不超过n自己。特别是,由此可知不存在任何包含所有素数的有限的列表,因而素数数列会不断延续下去,永不终结。欧几里得关于素数无穷性的证明是永恒不朽的,是数学中最受敬仰的证明之一。

虽然欧几里得的推理没有确切地说明在哪里能找到下一个素数,但现在我们对素数出现的频率已经有了深入的理解。例如,如果我们任意取两个没有公因数的数,比如a和b,并考虑数列a,a+b,a+2b,a+3b,…,德国数学家约翰·狄利克雷(Johan,1805——1859)证明这样一个数列包含无穷多个素数。(当然,如果a和b有公因数——比方说d,这就没有希望成立了。因为如此一来,列表里每一个成员都是d的倍数,因而不是素数。)当a=1,b=2时,我们得到由奇数组成的数列。由欧几里得的证明,我们知道它包含无穷多素数。实际上,通过对欧几里得的方法进行一些十分简单的改进,还可以证明其他一些特殊情况,比方说以下形式的数列:3+4n,5+6n,5+8n(n依次取1,2,3,…),它们各自都含有无穷多素数。但是,要证明狄利克雷的一般结论就非常难了。

另一个可以简单陈述的结果是,对于任意给定的数n(n≥2),至少存在一个素数大于n但小于2n。这在历史上被称为伯特兰猜想[2](Bertrand'spostulate),它可以用非常基本的数学知识来证明,虽然这个证明本身有些取巧。我们可以使用下面列出的素数,对取值不大于4000的n验证这个论断。首先观察到这个列表中位于打头的素数2之后的每个数都小于前一个数的2倍:

章节目录