素数无穷性的证明

素数无穷性的证明

素数有无穷多个。现在已知最早的证明方法是欧几里得在他的《几何原本》中提出的,该证明方法如下:

  • 假设只有有限个素数p_1,p_2,p_3\ldots p_n。令N=p_1\times p_2\times p_3\times \ldots \times p_n。那么,N+1是素数或者不是素数。
  • 如果N+1为素数,则N+1要大于p_1,p_2,p_3\ldots p_n,所以它不在那些假设的素数集合中。
  • 如果N+1为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以N+1不可能被p_1,p_2,p_3\ldots p_n整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。
  • 因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。
  • 对任何有限个素数的集合来说,用上述的方法永远可以得到有一个素数不在假设的素数集合中的结论。
  • 所以原先的假设不成立。也就是说,素数有无穷多个。

其他数学家也给出了他们自己的证明。欧拉利用黎曼ζ函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,Hillel Furstenberg则用拓扑学加以了证明。

 

  但是,千万不可认为,形如p1·p2·...·pn+1(其中p1,p2,...,pn均为素数)的数就一定是素数!第八届全国青少年信息学奥林匹克联赛(NOIP2002)提高组初赛试题第三题第2小题,写程序运行结果,程序要找的就是形如p1·p2·...·pn+1(其中p1,p2,...,pn均为素数)的数中第一个是合数的整数。

2*3+1=7 是素数

2*3*5+1=31 是素数

2*3*5*7+1=211 是素数

2*3*5*7*11+1=2311 是素数

2*3*5*7*11*13+1=30031 不是素数,因为30031=59*509

 

  但是例子中的13并不是假设中的最大的素数。如果13是最大的素数,那么例子中的“30031可以被59整除”中的59必然是合数,既然是合数,那么必然可以分解(这个可以证明),也就是说能被小于13的素数整除,很明显的矛盾了,这个例子的问题在于13不是最大的素数,本来就没有最大的素数的,所以根本不可能找到一个最大的素数反驳。这个例子说明的问题是:p1,p2,...,pn的乘积+1未必是素数,但首先得明确pn不是假设中的最大的素数,而是我们找到的其中一个素数。证明理论里是说所有的素数,而上面例子的59根本就没有出现在等式的左边。

posted @ 2012-09-15 21:28  LYLtim  阅读(2969)  评论(0编辑  收藏  举报