数学是一个庞大的学科,又可细分为很多的分支学科。而对素数的研究应该归在数论中。据说高斯(Gauss)(1777-1855)曾用下面的话表示他对数论的看法:“数学是科学的皇后,而数论是数学的皇后。”所以这里特意整理几篇跟素数相关的知识。
1.素数的定义
一个大于1的正整数 p ,它除了1和它本身外没有因子,就称它是素数。
一个自然数(除了0和1),如果不是素数,就是合数。
2.无穷多个素数
当人们认识了什么是素数后,就产生了一个问题:究竟素数元素的个数是有限多个,还是无限多个?正确的结论是:有无穷多个素数。
证明一:欧几里得证法
“素数有无穷多个”这个命题的证明,最初是由欧几里得(约公元前300年)用“反证法”给出的。证明过程如下:
假设“只有有限多个素数”。这里不妨认为一共有n个素数,则采用下标法,这n个素数可以表示为:
p1,p2,...,pn (按升序排列)。其他任何数(除了0和1)都是合数,于是,素数 p1,p2,...,pn 中至少有一个能够整除这些合数(根据”算术基本定律”:一个数 N 的素因子分解唯一)。现在我们构造一个数A=p1∗p2∗...∗pn+1 (所有素数的乘积再加上1)。A比已知的任意素数 pi 都大,因而A必须是合数。但用 p1、p2 等去除A总是余1,因此这些 pi 都不是A的因子,所以A是一个素数。从而导致矛盾。因此原假设只能被看成是荒谬的,从而原假设的反面必然是正确的,定理证毕。核心思想:假设存在最大的素数P,那么我们可以构造一个新的数2 * 3 * 5 * 7 * … * P + 1(所有的素数乘起来加1)。显然这个数不能被任一素数整除(所有素数除它都余1),这说明我们找到了一个更大的素数。
证明二:构造法(和欧几里得法类似)
- 假设“只有有限多个素数”。这里不妨认为一共有n个素数,则采用下标法,这n个素数可以表示为: p1,p2,...,pn (按升序排列)。再设Ar是其中任意取定的r个素数的乘积。只需证明任一 pj (1≤j≤n)都不能整除 p1∗...∗pn/Ar+Ar ; 由此推出素数有无穷多个。
- 证明:因为 pj 若不是Ar的因子,必然是 p1∗...∗pn/Ar 的因子;或者, pj 若是Ar的因子,必然不是 p1∗...∗pn/Ar 的因子。因此, p1∗...∗pn/Ar+Ar 或者是素数,或者除 p1,p2,...,pn 之外有其它素因子。 无论何种情况,都说明素数不止有限个。假设错误,所以素数有无穷多个。
证明三:级数法
假设“只有有限多个素数”。这里不妨认为一共有n个素数,则采用下标法,这n个素数可以表示为: p1,p2,...,pn (按升序排列)。只需证明对任意正整数N必有
∑k=1N1k<(1−1p1)−1(1−1p2)−1∗...∗(1−1pn)−1
因为级数 ∑+∞k=11k 递增,趋于正无穷大。所以如果上式 ∑Nk=11k<(1−1p1)−1(1−1p2)−1∗...∗(1−1pn)−1 成立的话,可知:素数有无穷多个。(否则,上式右侧为常值)证明:
∑k=1N1k<(1−1p1)−1(1−1p2)−1∗...∗(1−1pn)−1=(11−1p1)∗(11−1p2)∗...∗(11−1pn)(泰勒展开)=(1+1p1+1p21+1p31+...+1p+∞1)∗...∗(1+1pn+1p2n+1p3n+...+1p+∞n)=∑k=1+∞1k
上式中最后一步, 将括号展开得到这个结果。因为任意正整数都可以表示成素数或素数的乘积。故上式成立。 命题得证。
证明四:用Fermat数证明素数无穷多
Fermat(费尔马)数是指形为 22n+1 的数,我们把 22n+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)=(22n−1)∗(22n+1)=22(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,这就证明了两个数F(n)和F(m)互素。
证明五:用*-集合证明素数无穷多
定义: ∗− 集合是一个正整数集合{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即 2am∗(2(ak−am)−1) 。由于p是奇数,那么它只可能是整除 2ak−am−1 。
如果有s整除t,那么 2s−1 整除 2t−1 ( 证明见下面链接 )。于是,根据 ∗− 集合的定义, 2(ak−am)−1 整除 2ak−1 。那么p就可以整除 2ak−1 。但p也能整除 2ak+1 ,于是我们得出p整除2,这与p为奇数矛盾。如果有s整除t,那么 2s−1 整除 2t−1 。证明过程请戳链接:若正整数s整除t,那么2^s-1整除2^t-1
定理:素数有无穷多个
- 证明:根据引理1和2,对任意大的n,都存在大小为n的集合,里面的数两两互素,即至少存在n个不同的素因子。这就说明了素数的个数可以任意多。
总结:本篇博文整理了“素数有无穷多个”这个命题。证明方法来源于网络。证明方法还有很多,不能全部总结,实属憾事。希望见到更加独到的证明方式。
转载请注明出处: http ://blog.csdn.net/so_geili/article/details/54428227