数学系新生第一课通常是这个:证明素数有无穷多个。2300年前欧几里得(Euclid)在《几何原本》第9卷写下的证法,至今仍是教科书标配。但很少有人告诉你,这2000多年里数学家们其实找到了5条完全不同的路——有人用拓扑学,有人用分析学,有人甚至动用了集合论。今天把6个证明摊开看,你会发现一个规律:越晚出现的证明,离欧几里得越远,但内核越狠。
证明1:欧几里得的反证法,教科书级别的优雅
假设素数只有有限个,把它们全乘起来再加1。这个新数除以任何一个已知素数都余1,所以它要么是素数,要么包含新的素因子——两种情况都打脸你的假设。证毕。
这个证明的可怕之处在于,它不需要任何高等数学工具。高中生能懂,但2300年后没人能简化它。欧几里得用乘法构造了一个"漏洞",让有限假设自己把自己憋死。
但这里有个细节被多数人忽略:这个证明其实没直接构造出新的素数,只是证明了"必有"。具体是哪个?不知道。这种存在性证明的风格,奠定了数论2000年的基调。
证明2:欧拉的分析学入侵,把素数变成级数
18世纪,欧拉(Euler)干了件大胆的事:他把素数塞进了无穷级数。调和级数1 + 1/2 + 1/3 + 1/4 + ...是发散的,这谁都知道。欧拉发现,如果素数有限,那么乘积∏(1 - 1/p)⁻¹就会是有限值——但它等于调和级数,必须发散。
矛盾。所以素数无穷。
这个证明的狠劲在于,它第一次用分析学(微积分时代的工具)攻击数论问题。欧拉的等式后来被称为"欧拉乘积公式",直接催生了解析数论这门分支。黎曼猜想的起点就在这里。
但当时的数学家们其实没完全搞懂这个证明的边界。严格意义上的收敛性讨论,要等到19世纪柯西(Cauchy)和魏尔斯特拉斯(Weierstrass)建立极限理论后才算补完。欧拉靠直觉往前冲,后人负责修护栏。
证明3:埃尔德什的计数攻击,组合数学的降维打击
20世纪,匈牙利数学家埃尔德什(Erdős)给出了一个纯组合证明。他定义N(x)为不超过x的整数中,不被任何大于√x的素数整除的数的个数。通过双重计数,他证明如果素数有限,N(x)的增长速度会被锁死,但实际数出来又太大。
具体计算有点绕,但思路很产品经理:先定义一个指标,再从两个方向估计它的上下界,让假设撞墙。
埃尔德什这辈子发表了1500多篇论文,这个证明是他20岁前后的手笔。他后来成为历史上最多产的数学家之一,靠的就是这种"把问题翻译成计数问题"的直觉。这个证明没用到微积分,但用到了组合数学的鸽巢原理精神——东西太多,洞太少,必有冲突。
证明4:弗斯滕伯格的拓扑学炸弹,1955年的神操作
这是最离经叛道的一个。1955年,20岁的弗斯滕伯格(Hillel Furstenberg,本文两位仍在世的数学家之一)用拓扑学证明了素数无穷。他在整数集Z上定义了一套开集结构:等差数列是开集,有限个开集的并和任意交也是开集。
在这个拓扑空间里,除了±1,所有整数都属于某个素数的倍数构成的开集。如果素数有限,这些开集的并就是全集,但每个开集都是闭集(补集也是开集),有限个闭集的并还是闭集。整数集本身既是开集又是闭集,这没问题——但空集也必须是闭集,而有限个真子集的并不能覆盖Z,矛盾。
这个证明当时让数学界懵了。拓扑学是研究形状和连续性的,跟素数的离散性八竿子打不着。弗斯滕伯格硬是在整数上造了一个"形状",让素数的无限性变成了拓扑空间的覆盖问题。
他后来因此获得2006/2007年的沃尔夫数学奖,成为以色列首位该奖项得主。这个证明的真正价值不在于结论——结论早就知道了——而在于展示了不同数学分支之间的隐秘通道。
证明5:赛达克的递归构造,用乘积自己繁殖自己
2005年,北卡罗来纳大学的赛达克(Filip Saidak,本文另一位仍在世的数学家)给出了一个极简证明。任取整数n>1,n和n+1互素,所以它们的不同素因子集合不相交。从n=2开始,2和3的素因子是{2}和{3};3和4的素因子是{3}和{2},但4=2²,所以新素因子集合是{2}——等等,这里需要更仔细地看。
赛达克的完整构造是:设n₁=2,n_{k+1} = n_k(n_k + 1)。每个n_k和n_k+1互素,所以n_{k+1}至少比n_k多一个新素因子。递归下去,素因子无限增长。
这个证明的代码量极小,但思路很工程:造一个自我复制的序列,让素因子被迫不断增生。它不需要反证法,直接构造出无限增长的素因子集合。对于习惯了"假设-矛盾-证毕"套路的读者,这种正面硬刚的风格反而更直观。
证明6:信息论视角的压缩证明,2010年代的新玩法
最近十几年,有数学家尝试用信息论和计算复杂性理论重新表述素数无穷性。核心观察是:如果素数有限,那么所有整数的素因数分解可以用固定长度的比特串表示,这意味着整数的信息量有上界——但整数本身的信息量(以二进制长度计)是无界的。
这个证明还在学术讨论阶段,严格形式化需要更多工作。但它指向一个趋势:素数无穷这个"古老"定理,仍在被新语言重新翻译。每次翻译都暴露出一些之前被忽略的结构。
比如,赛达克的递归构造和计算理论中的"自我复制程序"有深层联系;弗斯滕伯格的拓扑证明启发了算术组合学的发展。一个定理被证明6次,不是为了确认它是对的,而是为了确认我们有6种不同的方式理解"为什么对"。
六个证明的隐藏脉络
把这六个证明按时间排开,能看到数学史的缩影。欧几里得用纯逻辑;欧拉引入分析工具;埃尔德什带来组合视角;弗斯滕伯格跨界拓扑;赛达克简化构造;最新尝试则借用信息论。
每次新证明的出现,都对应着数学分支的成熟。拓扑证明诞生于1950年代,正是点集拓扑学被系统化的时期;赛达克的2005年证明则出现在计算复杂性理论兴起之后。数学家们不是"发现"了新证明,而是等新工具造好了,才意识到原来这个问题可以用它重新解一遍。
另一个观察:证明的"可教性"在下降。欧几里得的证明5分钟能讲清楚;欧拉的证明需要微积分基础;弗斯滕伯格的证明需要拓扑学入门;信息论版本则需要编码理论的背景。数学的进步往往伴随着理解门槛的抬高,这是知识分化的代价。
但赛达克的证明是个例外——它比埃尔德什和弗斯滕伯格的都简单,却晚了50年。这说明"简单证明"未必被优先发现,有时候需要有人刻意往回走,用新眼光审视老问题。
2300年后,欧几里得的原始证明仍在服役。它不需要更新,不需要补丁,像一段写死在ROM里的固件。后来的五个证明更像是扩展卡——插在同一个主板上,让这台机器能对接新的外设。问题是:第七个证明会从哪里来?量子计算?范畴论?还是某种现在还没命名的数学?
热门跟贴