算术基本定理

背景

小学时,我们学习过如何对正整数进行质因数分解,但是没有严格证明所有正整数的质因数分解的结果都是唯一的(如果不考虑质因数的顺序)。本文会介绍算术基本定理 ( The Fundamental Theorem of Arithmetic\text{The Fundamental Theorem of Arithmetic} The Fundamental Theorem of Arithmetic)

正文

引理一

pp p 是一个质数, a,ba,b a,b 都是整数,如果 p∣abp\mid ab p∣ab 成立,那么以下两个命题至少有一个成立。

  • p∣ap\mid a p∣a
  • p∣bp\mid b p∣b

引理一的证明

我们先检查 p∣ap\mid a p∣a 是否成立。

如果 p∣ap\mid a p∣a 成立,那么证明结束(因为第一个命题成立)。

如果 p∤ap\nmid a p∤a,那么我们需要证明 p∣bp\mid b p∣b。考虑到 p∤ap\nmid a p∤a,而 pp p 的约数只有 11 1 和 pp p,那么 gcd(p,a)=1gcd(p,a)=1 gcd(p,a)=1 成立。依据扩展欧几里得定理(可以参考 Python 扩展欧几里得算法 一文),我们可以找到满足下列等式的整数 x,yx,y x,y
px+ay=1px+ay=1 px+ay=1

我们可以在等式两边乘以 bb b,得到 ⬇️
pxb+aby=bpxb+aby=b pxb+aby=b

由于 p∣pp\mid p p∣p 和 p∣abp\mid ab p∣ab 都成立,所以等式左边可以被 pp p 整除,那么等式右边也能被 pp p 整除,即 p∣bp\mid b p∣b。证明结束(因为第二个命题成立)。

引理二

Prime Divisibility Property\text{Prime Divisibility Property} Prime Divisibility Property

pp p 是一个质数, a1,a2,⋯ ,ar a_1,a_2,\cdots,a_r a1,a2,⋯,ar 都是整数,如果 p∣a1a2⋯ar p\mid a_1 a_2 \cdots a_r p∣a1a2⋯ar,那么以下 rr r 个命题至少有一个成立。

  • p∣a1 p\mid a_1 p∣a1
  • p∣a2 p\mid a_2 p∣a2
  • ⋯\cdots
  • p∣ar p\mid a_r p∣ar

引理二的证明

我们可以对 rr r 的大小进行归纳证明 ⬇️

  • r=1r=1 r=1 时, p=a1 p=a_1 p=a1, p∣a1 p\mid a_1 p∣a1 自然成立
  • r=2r=2 r=2 时,引理二退化为引理一
  • r=3r=3 r=3 时
    • 如果 p∣a1 p\mid a_1 p∣a1,那么引理二成立
    • 如果 p∤a1 p\nmid a_1 p∤a1,那么根据引理一, p∣a2a3 p\mid a_2 a_3 p∣a2a3 成立。利用引理一, p∣a2 p\mid a_2 p∣a2 成立或者 p∣a3 p\mid a_3 p∣a3 成立。引理二得证。
  • r=4r=4 r=4 时
    • 如果 p∣a1 p\mid a_1 p∣a1,那么引理二成立
    • 如果 p∤a1 p\nmid a_1 p∤a1,那么根据引理一, p∣a2a3a4 p\mid a_2 a_3 a_4 p∣a2a3a4 成立。这就退化成了 r=3r=3 r=3 的情况。
  • ...

所以,我们可以把引理一视为引理二在 r=2r=2 r=2 时的特例,把引理二视为引理一的推广。

算术基本定理

算术基本定理 ( The Fundamental Theorem of Arithmetic)\text{The Fundamental Theorem of Arithmetic}) The Fundamental Theorem of Arithmetic)

对于任意满足 n≥2n\ge 2 n≥2 的整数 nn n,它都可以分解为若干个质数的乘积,而且这个分解结果是唯一的(如果不考虑质因数的顺序)。

证明分为两部分 ⬇️

  • 分解结果存在
  • 分解结果唯一

证明分解结果存在

n=2n=2 n=2 时, 22 2 就是(一个)分解结果。假设我们已经证明了 2≤n≤k2\le n \le k 2≤n≤k 的情况,现在要用数学归纳法证明 n=k+1n=k+1 n=k+1 的情况。

如果 k+1k+1 k+1 自身就是质数,那么 n=k+1n=k+1 n=k+1 就是(一个)分解结果。

如果 k+1k+1 k+1 不是质数,考虑到每个大于等于 22 2 的整数至少有 22 2 个约数,即 11 1 和它自身。既然 k+1k+1 k+1 不是质数,那么 k+1k+1 k+1 一定还有除了 11 1 和 nn n 之外的其他约数 xx x, xx x 满足 1<x<(k+1)1 \lt x\lt (k + 1) 1<x<(k+1)。 n=xn=x n=x 以及 n= k+1x n=\frac{k+1}{x} n=xk+1的情况,已经被归纳假设所涵盖了, xx x 和 k+1x \frac{k+1}{x} xk+1 都可以写成若干个质数的乘积。那么 k+1=x× k+1x k+1=x \times \frac{k+1}{x} k+1=x×xk+1 也可以写成若干个质数的乘积。

n=k+1n=k+1 n=k+1 的情况证明完毕。根据数学归纳法,分解结果的存在性对任意 n≥2n\ge 2 n≥2 都成立。

证明分解结果唯一

n=2n=2 n=2 时,只有一个分解结果 n=2n=2 n=2,假设存在某个 NN N,它的质因数分解的结果不唯一。那么我们逐个检查 n=2,3,⋯ ,Nn=2,3,\cdots,N n=2,3,⋯,N 的情况,一定可以找到 分解结果不唯一 的最小的整数 N0 N_0 N0 (那么 2<N0≤N 2\lt N_0\le N 2<N0≤N) 成立。请注意,对任意满足 2≤n<N0 2\le n \lt N_0 2≤n<N0 的 nn n,其分解结果都是唯一的。由于 N0 N_0 N0 的分解结果不唯一,那么它至少有两种分解结果,分别记录如下

  • N0=p1p2⋯ps N_0=p_1 p_2\cdots p_s N0=p1p2⋯ps
  • N0=q1q2⋯qt N_0=q_1 q_2\cdots q_t N0=q1q2⋯qt

其中 p1,p2,⋯ ,ps p_1,p_2,\cdots,p_s p1,p2,⋯,ps 均为质数, q1,q2,⋯ ,qt q_1,q_2,\cdots,q_t q1,q2,⋯,qt 均为质数。为了便于讨论,我们假设 p1,p2,⋯ ,ps p_1,p_2,\cdots,p_s p1,p2,⋯,ps 和 q1,q2,⋯ ,qt q_1,q_2,\cdots,q_t q1,q2,⋯,qt 各自已经按照从小到大的顺序排序过了。

我们看看 p1 p_1 p1。由于 N0=∣p1p2⋯ps N_0=\mid p_1 p_2\cdots p_s N0=∣p1p2⋯ps 所以, p1∣N0 p_1 \mid N_0 p1∣N0。根据引理二,以下 tt t 个命题中至少有一个命题成立

  • p1∣q1 p_1\mid q_1 p1∣q1
  • p1∣q2 p_1\mid q_2 p1∣q2
  • ⋯\cdots
  • p1∣qt p_1\mid q_t p1∣qt

考虑到 q1,q2,⋯ ,qt q_1,q_2,\cdots,q_t q1,q2,⋯,qt 均为质数,也就是说, q1,q2,⋯ ,qt q_1,q_2,\cdots,q_t q1,q2,⋯,qt 中一定存在和 p1 p_1 p1 相等的元素。换句话说, q1,q2,⋯ ,qt q_1,q_2,\cdots,q_t q1,q2,⋯,qt 中至少有一个数字是 p1 p_1 p1。

我们看看 q1 q_1 q1。用类似的方式,可以得出 p1,p2,⋯ ,ps p_1,p_2,\cdots,p_s p1,p2,⋯,ps 中至少有一个数字是 q1 q_1 q1。

考虑到 p1,p2,⋯ ,ps p_1,p_2,\cdots,p_s p1,p2,⋯,ps 和 q1,q2,⋯ ,qt q_1,q_2,\cdots,q_t q1,q2,⋯,qt 均已排序,

  • p1 p_1 p1 在 q1,q2,⋯ ,qt q_1,q_2,\cdots,q_t q1,q2,⋯,qt 中出现,那么 p1≥q1 p_1 \ge q_1 p1≥q1
  • q1 q_1 q1 在 p1,p2,⋯ ,ps p_1,p_2,\cdots,p_s p1,p2,⋯,ps 中出现,那么 q1≥p1 q_1 \ge p_1 q1≥p1

所以 p1=q1 p_1=q_1 p1=q1 成立。这就出现一个问题:既然 p1=q1 p_1=q_1 p1=q1,那么我们重新看一下 N0 N_0 N0 的两种分解结果 ⬇️

  • N0=p1p2⋯ps N_0=p_1 p_2\cdots p_s N0=p1p2⋯ps
  • N0=q1q2⋯qt N_0=q_1 q_2\cdots q_t N0=q1q2⋯qt

我们可以在每个等式两边都除以 p1 p_1 p1 (也就是 q1 q_1 q1),记 N0′=N0/p1 N_0'=N_0/p_1 N0′=N0/p1,于是得到

  • N0′=p2⋯ps N_0'=p_2\cdots p_s N0′=p2⋯ps
  • N0′=q2⋯qt N_0'=q_2\cdots q_t N0′=q2⋯qt

这就意味着 N0′ N_0' N0′ 至少有两种分解结果,这与" N0 N_0 N0 是分解结果不唯一的最小的整数"矛盾。至此,我们用反证法证明了分解结果的唯一性。

说明

本文所提供的证明方法是比较典型的证法(或者典型证法的变体),由于典型的证明方法很容易搜到,可以认为这些证法是公共知识,没有版权。

相关推荐
金銀銅鐵4 天前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
BadBadBad__AK6 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
金銀銅鐵6 天前
[Python] 模 n 乘法的逆元计算器
python·数学·游戏
金銀銅鐵7 天前
[Python] 扩展欧几里得算法
python·数学·算法
金銀銅鐵7 天前
n^5 和 n 的个位数是否总相等?
python·数学
金銀銅鐵7 天前
借助 Pygame 探索最大公约数的规律
python·数学·游戏
金銀銅鐵12 天前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
金銀銅鐵15 天前
用 Pygame 实现 15 puzzle
python·数学·游戏
Luhui Dev18 天前
几何图,现在可以用 API 一句话生成
人工智能·数学·luhuidev