GCD and LCM

A fine quotation is a diamond on the finger of a man of wit, and a pebble in the hand of a fool.
— Joseph Roux

算术基本定理及其证明

算术基本定理 (Fundamental Theorem of Arithmetic):
任何大于 1 的整数 nn 都可以被唯一地分解成有限个素数的乘积(不考虑因子的顺序)。
即:对于任意整数 n>1n > 1,存在唯一的不同素数集合 {p1,,pk}\{p_1, \dots, p_k\} 和唯一的正整数组 {α1,,αk}\{\alpha_1, \dots, \alpha_k\} 使得:

n=p1α1p2α2pkαk=i=1kpiαin = p_1^{\alpha_1} p_2^{\alpha_2} \cdots p_k^{\alpha_k} = \prod_{i=1}^{k} p_i^{\alpha_i}


证明

证明分为两部分:存在性和唯一性。

第一部分:存在性证明(强归纳法)

我们要证明任何整数 n>1n > 1 都可以写成素数的乘积。

  1. 基础情况:n=2n=2 时,2 本身是素数,已是素数乘积。成立。
  2. 归纳假设: 假设对于所有满足 1<k<n1 < k < n 的整数 kkkk 都可以表示成素数的乘积。
  3. 归纳步骤: 考虑整数 nn
    • 情况 A: 如果 nn 是素数,则它已是素数乘积。
    • 情况 B: 如果 nn 是合数,则 n=abn = a \cdot b,其中 1<a<n1 < a < n1<b<n1 < b < n。根据归纳假设,aabb 都可以写成素数乘积:

      a=p1p2pra = p_1 p_2 \cdots p_r

      b=q1q2qsb = q_1 q_2 \cdots q_s

      其中所有 pi,qjp_i, q_j 都是素数。那么:

      n=ab=(p1pr)(q1qs)n = a \cdot b = (p_1 \cdots p_r)(q_1 \cdots q_s)

      这表明 nn 也可以写成素数的乘积。

根据强归纳法,存在性得证。

第二部分:唯一性证明(使用欧几里得引理和反证法)

我们需要用到一个关键引理:

欧几里得引理 (Euclid’s Lemma):
如果素数 pp 整除乘积 abab (记作 pabp | ab),那么 pp 必须整除 aapp 必须整除 bb (即 pap | apbp | b)。
推论: 如果素数 pp 整除 a1a2aka_1 a_2 \cdots a_k,则 pp 至少整除其中一个 aia_i

证明唯一性(反证法):

  1. 假设: 假设存在大于 1 的整数拥有至少两种不同的素数分解。根据良序原则(最小数原理),必然存在一个最小的这样的整数,记为 nn
  2. 分析 nn:nn 有两种不同的分解:

    n=p1p2pr=q1q2qsn = p_1 p_2 \cdots p_r = q_1 q_2 \cdots q_s

    其中 pip_iqjq_j 都是素数,并且作为多重集(考虑重复次数) {p1,,pr}{q1,,qs}\{p_1, \dots, p_r\} \neq \{q_1, \dots, q_s\}。由于 nn 是最小的反例,任何小于 nn 的整数 m>1m > 1 的素数分解是唯一的。
  3. 应用引理: 考虑 p1p_1。显然 p1np_1 | n,所以 p1(q1q2qs)p_1 | (q_1 q_2 \cdots q_s)。根据欧几里得引理的推论,p1p_1 必须整除某个 qjq_j。因为 p1p_1qjq_j 都是素数,这只可能在 p1=qjp_1 = q_j 时发生。
  4. 约去公共因子: 不失一般性,重排 qq 使得 p1=q1p_1 = q_1。等式两边同除以 p1p_1

    np1=p2p3pr=q2q3qs\frac{n}{p_1} = p_2 p_3 \cdots p_r = q_2 q_3 \cdots q_s

  5. 导出矛盾:m=n/p1m = n/p_1。因为 nn 是合数(否则分解唯一),所以 1<m<n1 < m < n。我们得到了整数 mm 的两种分解 p2prp_2 \cdots p_rq2qsq_2 \cdots q_s。由于 {p1,,pr}\{p_1, \dots, p_r\}{q1,,qs}\{q_1, \dots, q_s\} 不同,去掉相同的 p1=q1p_1=q_1 后,{p2,,pr}\{p_2, \dots, p_r\}{q2,,qs}\{q_2, \dots, q_s\} 也必定不同。
    这表明 mm 是一个比 nn 更小的、拥有不同素数分解的整数。这与 nn 是具有此性质的最小整数的假设相矛盾!
  6. 结论: 初始假设错误。因此,任何整数 n>1n > 1 的素数分解是唯一的(在不考虑顺序时)。

Q.E.D.Q.E.D.

我们要证明的等式是:

gcd(lcm(a,b),lcm(a,c))=lcm(a,gcd(b,c))\gcd(\operatorname{lcm}(a,b), \operatorname{lcm}(a,c)) = \operatorname{lcm}(a, \gcd(b,c))


基础:唯一分解定理(算术基本定理)

证明的关键在于使用唯一分解定理。该定理指出,任何大于 1 的整数都可以唯一地分解为素数的乘积(不考虑顺序)。

形式一:
对于 nZ,n>1\forall n \in \mathbb{Z}, n > 1,存在唯一的不同素数集合 {p1,,pk}\{p_1, \dots, p_k\} 和唯一的正整数指数集合 {α1,,αk}\{\alpha_1, \dots, \alpha_k\} 使得:

n=p1α1p2α2pkαk=i=1kpiαin = p_1^{\alpha_1} p_2^{\alpha_2} \cdots p_k^{\alpha_k} = \prod_{i=1}^{k} p_i^{\alpha_i}

形式二(更适用于证明):
对于 nZ,n>1\forall n \in \mathbb{Z}, n > 1,其分解可以写成包含所有素数的形式:

n=p primepνp(n)n = \prod_{p \text{ prime}} p^{\nu_p(n)}

其中 νp(n)\nu_p(n) 是素数 ppnn 分解中的(非负)指数。对于给定的 nn,只有有限个 νp(n)\nu_p(n) 大于 0。


使用素数指数表示 GCD 和 LCM

根据唯一分解定理,我们可以通过比较整数分解中每个素数 pp 的指数来计算最大公约数 (gcd) 和最小公倍数 (lcm):

  • 对于任意素数 pp
    • ppgcd(x,y)\gcd(x, y) 中的指数是 νp(gcd(x,y))=min(νp(x),νp(y))\nu_p(\gcd(x, y)) = \min(\nu_p(x), \nu_p(y))
    • pplcm(x,y)\operatorname{lcm}(x, y) 中的指数是 νp(lcm(x,y))=max(νp(x),νp(y))\nu_p(\operatorname{lcm}(x, y)) = \max(\nu_p(x), \nu_p(y))

例子:
a=12=223150a = 12 = 2^2 \cdot 3^1 \cdot 5^0
b=30=213151b = 30 = 2^1 \cdot 3^1 \cdot 5^1

  • 计算 gcd(12,30)\gcd(12, 30):

    • 素数 2: 指数 min(2,1)=1\min(2, 1) = 1
    • 素数 3: 指数 min(1,1)=1\min(1, 1) = 1
    • 素数 5: 指数 min(0,1)=0\min(0, 1) = 0
    • 所以 gcd(12,30)=213150=6\gcd(12, 30) = 2^1 \cdot 3^1 \cdot 5^0 = 6
  • 计算 lcm(12,30)\operatorname{lcm}(12, 30):

    • 素数 2: 指数 max(2,1)=2\max(2, 1) = 2
    • 素数 3: 指数 max(1,1)=1\max(1, 1) = 1
    • 素数 5: 指数 max(0,1)=1\max(0, 1) = 1
    • 所以 lcm(12,30)=223151=60\operatorname{lcm}(12, 30) = 2^2 \cdot 3^1 \cdot 5^1 = 60

证明过程

我们的策略是证明对于任意素数 pp,它在等式左边 (LHS) 和右边 (RHS) 的指数都相等。根据唯一分解定理,如果所有素数的指数都对应相等,则这两个数必然相等。

设对于任意素数 pp,其在 a,b,ca, b, c 中的指数分别为 α=νp(a)\alpha = \nu_p(a), β=νp(b)\beta = \nu_p(b), γ=νp(c)\gamma = \nu_p(c)

1. 计算 LHS 中 pp 的指数:
LHS = gcd(lcm(a,b),lcm(a,c))\gcd(\operatorname{lcm}(a,b), \operatorname{lcm}(a,c))

  • pplcm(a,b)\operatorname{lcm}(a,b) 中的指数为 max(α,β)\max(\alpha, \beta)
  • pplcm(a,c)\operatorname{lcm}(a,c) 中的指数为 max(α,γ)\max(\alpha, \gamma)
  • 根据 gcd 的指数规则, pp 在 LHS 中的指数为:

    νp(LHS)=min(max(α,β),max(α,γ))\nu_p(\text{LHS}) = \min(\max(\alpha, \beta), \max(\alpha, \gamma))

2. 计算 RHS 中 pp 的指数:
RHS = lcm(a,gcd(b,c))\operatorname{lcm}(a, \gcd(b,c))

  • ppgcd(b,c)\gcd(b,c) 中的指数为 min(β,γ)\min(\beta, \gamma)
  • 根据 lcm 的指数规则,pp 在 RHS 中的指数为:

    νp(RHS)=max(α,min(β,γ))\nu_p(\text{RHS}) = \max(\alpha, \min(\beta, \gamma))

3. 证明指数相等:
我们需要证明 νp(LHS)=νp(RHS)\nu_p(\text{LHS}) = \nu_p(\text{RHS}),即:

min(max(α,β),max(α,γ))=max(α,min(β,γ))\min(\max(\alpha, \beta), \max(\alpha, \gamma)) = \max(\alpha, \min(\beta, \gamma))

这个等式是 min\minmax\max 运算的一个基本性质,称为分配律。这里用到的是 max 对 min 的分配律:

max(x,min(y,z))=min(max(x,y),max(x,z))\max(x, \min(y, z)) = \min(\max(x, y), \max(x, z))

x=αx = \alpha, y=βy = \beta, z=γz = \gamma,我们直接应用此分配律:

max(α,min(β,γ))=min(max(α,β),max(α,γ))\max(\alpha, \min(\beta, \gamma)) = \min(\max(\alpha, \beta), \max(\alpha, \gamma))

这表明 νp(RHS)=νp(LHS)\nu_p(\text{RHS}) = \nu_p(\text{LHS})

结论:
由于对于任意素数 pp,它在等式两边的指数都相等,根据唯一分解定理,这两个表达式代表的整数必然相等。

因此,原等式 gcd(lcm(a,b),lcm(a,c))=lcm(a,gcd(b,c))\gcd(\operatorname{lcm}(a,b), \operatorname{lcm}(a,c)) = \operatorname{lcm}(a, \gcd(b,c)) 成立。

Q.E.D.Q.E.D.


GCD and LCM
http://example.com/2025/04/21/GCD-and-LCM/
Author
Anfsity
Posted on
April 21, 2025
Licensed under