我们已经知道,素数有无穷多个。当时我们用的是最普遍的证明方法:
假设存在最大的素数P,那么我们可以构造一个新的数2 * 3 * 5 * 7 * … * P + 1(所有的素数乘起来加1)。显然这个数不能被任一素数整除(所有素数除它都余1),这说明我们找到了一个更大的素数。
这里,我们将再提供两种新的证明方法,来自cut-the-knot(http://www.cut-the-knot.org/)两篇新文。
用Fermat数证明素数无穷多
Fermat数是指形为2^(2^n)+1的数,我们把2^(2^n)+1记作F(n),其中n可以取所有自然数。显然所有的Fermat数都是奇数。一会儿我们将看到任两个Fermat数都是互素的,也就是说,每一个Fermat数的每一个素因子都与其它Fermat数的素因子不同。这也就说明,素数个数有无穷多。
引理1:F(0) * F(1) * F(2) * … * F(n-1) = F(n) – 2, n>=1
证明:数学归纳法。F(0)=3且F(1)=5,那么k=1时显然成立。假设k=n成立,则当k=n+1时:
F(0) * F(1) * F(2) * … * F(n)
= ( F(0) * F(1) * F(2) * … * F(n-1) ) * F(n)
= ( F(n)-2 ) * F(n)
= ( 2^(2^n)-1 ) * ( 2^(2^n)+1 )
= 2^(2^(n+1))-1
= F(n+1)-2
引理2:对任意两个不相等的自然数n和m,有F(n)和F(m)互素。
证明:假设t同时整除F(n)和F(m),m<n。根据引理1,有:
F(n)=F(0) * F(1) * F(2) * … * F(m) * … * F(n-1) – 2
这说明t可以整除
F(0) * F(1) * F(2) * … * F(m) * … * F(n-1) – F(n) = 2
注意到2只有两个因数1和2。前面说过Fermat数都是奇数,因此不可能被2整除。这样,t只能为1,这就证明了两个数互素。
用*-集合证明素数无穷多
*-集合是一个正整数集合{a1, a2, … an},使得对所有不相等的i和j都有ai-aj整除ai。
引理1:对所有n>=2,都存在一个大小为n的*-集合。
证明:数学归纳法。{1,2}显然是一个大小为2的*-集合。假设{a1, a2, … an}是一个*-集合。定义b0为a1*a2*…*an(即所有ai的乘积)。对所有不超过n的正整数k,令bk=b0+ak,那么{b0, b1, b2, …, bn}就是一个大小为n+1的*-集。
引理2:假设{a1, a2, … an}是一个*-集合。对所有不超过n的正整数i,定义fi=2^ai+1,那么f1, f2, …, fn两两互素。
证明:显然fi都是奇数。假设fk和fm(fk>fm)可以被同一个素数p整除,那么p也只能是奇数。p可以整除fk-fm即2^am * ( 2^(ak-am)-1 )。由于p是奇数,那么它只可能是整除2^(ak-am)-1。
如果有s整除t,那么2^s-1整除2^t-1。于是,根据*-集合的定义,2^(ak-am)-1整除2^ak-1。那么p就可以整除2^ak-1。但p也能整除2^ak+1,于是我们得出p整除2,这与p为奇数矛盾。
定理:素数有无穷多个
证明:根据引理1和2,对任意大的n,都存在大小为n的集合,里面的数两两互素,即至少存在n个不同的素因子。这就说明了素数的个数可以任意多。