上一部分我们聚焦在整数之间的整除关系,弄清楚了一个数"能不能干净地量尽"另一个数,以及随之而来的因数计数与整除判别。那讲的是两个数之间的"关联"。今天我们换一个视角,把目光收回到每一个数本身,问一个更根本的问题:一个正整数,能不能被进一步"拆开"?这个问题听起来简单,但它引出了数学史上最深刻的研究领域之一,也是整个数论大厦的另一根主梁。
化学里,物质由原子构成,水分子是两个氢原子加一个氧原子,铁块是铁原子的堆积。正整数的乘法世界里存在完全类似的"原子"——那些最基础的、无法再被拆分的数,正是我们今天要认识的素数。而由它们组合拼出的那些数,就是合数。理解了素数,就理解了整数乘法意义下的原子论。

理解素数最直接的路径,是观察因数的个数。对于正整数 ,它的正因数是 ,共四个;对于 ,正因数是 ,共四个;对于 ,正因数仅有 和 本身,只有两个。 和 都能被"额外"的因数整除,因此可以写成更小正整数的乘积(,);而 则不行,除了平凡的 之外,它无法再被拆开。因数只有这两个的数,就是素数。
素数(质数)的定义:若一个正整数 满足 ,且它的正因数恰好只有 和 本身,则称 为素数(Prime Number)。大于 的正整数中,不是素数的称为合数(Composite Number),即合数至少拥有一个既不等于 也不等于自身的正因数。
这个定义有一个需要特别说明的边界情形: 既不是素数,也不是合数。 的正因数只有它自身,不满足素数"恰好有两个因数"的要求;同时它也没有"额外"因数,所以也不是合数。把 单独排除,并非数学家的随意规定——稍后我们会看到,这是为了保证算术基本定理中"唯一分解"这一核心性质成立的必要前提,排除 是逻辑上的必然,而非约定上的权宜。
最小的素数是 ,其次是 你一定注意到了一件有趣的事:除了 ,后面所有的素数都是奇数。这并不奇怪——任何大于 的偶数都能被 整除,也就拥有了一个"额外因数" ,自然成了合数。 因此成了整个素数序列里唯一的偶数,数论中有时戏称它是"最孤独的素数",因为在偶数阵营里,它是唯一的素数,而在奇数阵营里,它又不属于那里。
判断一个给定正整数 是否为素数,最直接的方法是试除法:按顺序用 去除 ,看是否能整除。关键的效率改进是:试除只需进行到 为止。理由如下:若 且 ,则 ,即 ——也就是说, 的。因此,若在 到 的范围内找不到任何能整除 的数, 就是素数。
以 为例。由于 ,只需试除 :将 依次除以这些数,所有结果都不是整数,所以 是素数。进一步的效率优化是:试除时只需试素数而非所有整数,因为合数的因数里必然包含更小的素数,若 不能被那个更小的素数整除,也就不能被这个合数整除。对于 的情形,只需试 四个素数就已足够。
试除法在 较小时非常实用,但当 是天文数字量级的大数(例如现代密码学中使用的数百位整数)时,它的效率就远远不够了。那时需要更复杂的概率性素数检测算法,这是数论与计算机科学交叉的前沿地带,我们现阶段先掌握试除法即可。
如果目标不是判断单个数,而是找出某个范围 内的所有素数,逐个试除的效率就太低了。公元前三世纪,古希腊数学家埃拉托色尼(Eratosthenes)发明了一种精妙的"筛子",一口气滤去所有合数,留下纯净的素数。
筛法的思路极为朴素:从 开始,将 的所有倍数()标记为合数,保留 本身;接着找到下一个未被标记的数 ,并标记 的所有倍数;如此循环,直到当前处理的素数 满足 为止——此时所有未被标记的数都已经是素数。一个重要的优化细节是:对于素数 ,标记倍数时无须从 开始,因为 这些数已经在处理更小素数时被标记过了,只需从 开始标记,可以省去大量重复操作。
以找出 以内所有素数为例。先列出 到 的所有整数;第一轮取 ,从 开始划去所有 的倍数;第二轮取 ,从 开始划去 ( 已被第一轮划去);第三轮取 ,从 开始,仅需划去 ;由于 ,筛法终止。最终幸存的数是 ,共 个,这就是 以内的全部素数。
这个算法的理论时间复杂度是 ,远优于对每个数逐一试除的 。埃拉托色尼的这张"筛子"已经沿用了两千余年,在现代计算机上处理千万量级的范围时依然是首选的基础算法。它能历久弥新的原因,在于它完全顺应了整除关系的结构——每个合数都被它的最小素因子"揭发",没有任何合数能漏网。
素数之所以被称为整数世界的"原子",是因为下面这条定理保证了每个大于 的正整数都能被素数唯一地"拼出来"。
算术基本定理(唯一分解定理):每一个大于 的正整数都能被唯一地表示为若干素数的乘积(不计因子的排列顺序)。即对任意 ,存在唯一的分解
这个定理包含两个层次的断言,缺一不可。其一是存在性:任何大于 的正整数都有素数分解。其二是唯一性:这个分解在忽略排列顺序的意义下是唯一的,不存在两种本质不同的写法。几个直观的例子是 ,,,。对每一个你熟悉的数,试着找它的素因数分解,系统的写法是把素数因子从小到大排列并写出各自的指数,这样就得到了唯一确定的"身份证"。
存在性的证明依赖良序原理:若某个大于 的正整数没有素因数分解,取所有这样的数中最小的一个,设为 。 本身如果是素数,那 就是平凡的素数分解,矛盾;若 是合数,则 ,其中 ,由 的最小性, 和 都有素因数分解,把它们合并就得到 的素因数分解,也形成矛盾。因此不存在"无法分解"的整数,存在性得证。唯一性的证明则需要一条关键引理——素数的整除性质(如果素数 整除乘积 ,则 整除 或 整除 ),这个引理本身已经是一个值得单独欣赏的定理,我们在本篇的例题部分给出它的证明。
回到 为何不能是素数的问题。如果允许 是素数,那么 ,可以无限乘以 ,分解方式就有无穷多种,"唯一性"立刻崩溃。把 排除在素数之外,是保持唯一分解定理成立的逻辑必然,而不是数学家的任意约定。这也解释了为什么 在整数乘法中的角色是"乘法单位元"而非"乘法原子"——它在乘法下不改变任何东西,就像加法中的 一样,是结构中性的存在。
认识了素数的定义、判断方法与分解定理之后,一个必然浮现的问题是:素数到底有多少个?在越来越大的数里,我们不断发现新的素数,但这个过程会在某处停止吗?
这个问题在公元前约 年就被欧几里得彻底解决了,他的证明极其简洁,被数论学家和普通数学爱好者共同推崇为数学史上最美的证明之一。
定理:素数有无穷多个。
证明采用反证法。假设素数只有有限个,将它们全部列出为 。构造一个新的正整数
现在审问 的身份: 要么是素数,要么是合数,两种情况都将导致矛盾。若 是素数,则它是一个不在原列表中的新素数(因为 显然大于所有 ),与"已将所有素数列出"矛盾。若 是合数,由算术基本定理, 有某个素因子 。但 不可能是任何 ,因为 除以任意 的余数都是 (由构造方式,,所以 但 ),于是 是一个既非任何 又是素数的数,同样与"已将所有素数列出"矛盾。两种情况都不可能,"素数有限"的假设宣告破产,素数只能是无穷多个。
值得注意的是,欧几里得的构造方法并不是一台"生产新素数的机器"—— 本身不一定是素数,有时它也可能是合数(例如 ),但它的素因子 和 都不在原列表 中,矛盾依然成立。这个细节常常被初学者误解,以为欧几里得的证明直接构造了新素数,实际上证明的力量来自"无论 是哪种情形,原列表都无法穷尽所有素数"这个逻辑。
素数有无穷多个,但它们在数轴上的分布是高度不均匀的。在前 个正整数中,素数有 个,密度约为 ;在前 个正整数中,素数有 个,密度约 ;前 个里有 个,约 ;前 个里有 个,约 。随着范围扩大,素数变得愈发稀疏,但永远不会彻底消失。
数学家用素数计数函数 表示不超过 的素数个数。 世纪末由阿达马(Hadamard)和瓦莱·普桑(de la Vallée Poussin)独立证明的素数定理给出了精确的渐近描述:
这意味着在 附近,每隔约 个数才会出现一个素数。 时 , 时 ——素数会越来越稀疏,但这条稀疏化的趋势是对数级别的,非常缓慢,永远不会让素数"跑光"。更令人着迷的是,哥德巴赫猜想(每个大于 的偶数都是两个素数之和)和黎曼假设(素数分布与黎曼 函数零点之间的精确联系)至今仍是未解之谜,素数的故事远未结束。
题目:判断 是否为素数。
估计试除的上界:,所以只需检验 能否被 这五个不超过 的素数整除。
题目:写出 的标准素因数分解。
从最小素数 开始连续除:,,,此时 已是奇数, 无法继续整除。整理:。
题目:用筛法找出 以内的全部素数。
确定筛法的终止条件:,所以只需筛到素数 ,之后所有未被划去的数都已是素数。
题目:证明:若 ,则 必有至少一个素因子。
考虑 的所有大于 的正因子构成的集合,这个集合非空(因为 本身就在其中)。由良序原理,这个集合有最小元素,设为 。
断言 是素数。反证:若 不是素数,则 有某个因子 满足 。由传递性, 且 推出 ,于是 也是 的大于 的因子,但 ,与 是最小元素矛盾。
题目:设 是素数,若 ,证明 或 。
假设 ,需要推出 。由于 是素数,它的正因数只有 和 本身,故 只能取 或 。因为 ,所以 ,于是 ,即 与 互质。
练习一:判断 是否为素数。若是合数,写出它的素因数分解。
,需试除的素数为 。 是奇数(非 的倍数),数字和 (非 的倍数),末位为 (非 的倍数)。(不整除),(不整除),(整除!)。
练习二:用埃拉托色尼筛法找出 到 之间所有的素数,并验证:这 个素数满足每对相邻素数之差(即"素数间隔")均不超过 。
以内的素数为 ,共 个(过程参见正文筛法示例)。
相邻素数的间隔:,,,,,,,,。间隔最大为 (发生在 和 之间),均未超过 ,验证成立。注意:当数越来越大时,素数间隔的行为变得复杂得多,这正是素数分布理论研究的核心内容。
练习三:证明:若 是素数且 ,则 (提示:先由例题五的引理推出 )。
由 ,利用例题五的引理, 或 (两个因子相同),故 。设 ( 为整数),则 ,即 。
素数是整数乘法世界的"原子",是无法被进一步分解的最基本单元。算术基本定理保证了每个大于 的正整数都有且只有一种素因数分解,这是整个数论大厦的核心基石,也是 被排除在素数之外的根本原因。 判断单个数的素性可以用试除法(只需试到 ,且只试素数),寻找一段范围内的所有素数则用埃拉托色尼筛法,两者背后的效率原理都来自"最小因子不超过 "这条简单却深刻的观察。
欧几里得用一个反证法——构造所有已知素数之积加 ,导出必然存在新素数——证明了素数是无穷无尽的,这个证明历经两千三百年依然无懈可击。 素数分布越来越稀疏,素数定理 给出了定量描述,而哥德巴赫猜想与黎曼假设则提醒我们,素数的故事远未讲完。
其中 是素数, 是正整数。
逐一试除。 是奇数,。各位数字和 ,,故 。末位为 ,不是 或 ,故 。,不整除。,恰好整除。
由于 , 有因数 (既不等于 也不等于 ),故 是合数,其素因数分解为 。这个例子说明,外表"像素数"(没有显眼的小因子)的数,也可能在稍大一点的素数处被"击穿",所以试除法必须坚持试到 为止,不能提前放弃。
接着用 除 :,, 已是素数, 无法继续整除。整理:。
将各步合并:。验算:。
由因数个数公式, 的正因数个数为 ,这正是上一篇工具的直接应用,素因数分解与因数计数紧密相连。
第一轮,:保留 ,从 开始划去所有偶数 ,共划去 个数。
第二轮,:保留 ,从 开始划去 的奇数倍数 (偶数倍数已在第一轮划去)。
第三轮,:保留 ,从 开始划去 (其余 的倍数已被划去)。第四轮,:保留 ,从 开始,划去 。由于下一个候选素数 ,筛法终止。幸存的数即为 以内全部素数:,共 个。
因此 是素数,且 ,命题得证。 这个证明的核心技巧是良序原理加反证,把"最小因子必然是素数"这一直觉变成了严格论证,同时它也是存在性部分的关键步骤——每个大于 的整数都有素因子,递归地应用这一事实,就能建立起素因数分解的存在性。
由裴蜀定理(Bézout's Identity),存在整数 使得 。两边乘以 :。其中 (显然),(因为 ,所以 ),故 。
综合:若 ,则 ,等价地, 或 ,命题得证。 这条引理是算术基本定理唯一性证明的核心工具:若两种素因数分解都成立,可以用引理一步步推出两种分解中的素数必然两两相同且指数相同,从而唯一性得证。素数区别于合数的最本质之处,正是这条整除乘积时的"传递穿透"能力。
故 ,是合数。两个因子 和 都是素数,所以这就是 的素因数分解。
更一般地,若 是素数且 ,则 ,其证明只需对 次反复应用该引理即可。这个性质在后续证明是无理数等经典结论时会用到——"如果 是最简分数,则 ,由上述性质 ,继而 ,矛盾"的论证结构,就是这条引理的直接应用。