首页 / 学科工具 / 初中竞赛 / 整除、同余与不定方程 / 最大公因数与最小公倍数
初中数学竞赛 · 整除、同余与不定方程

最大公因数与最小公倍数

求 gcd 不用分解质因数,用辗转相除更快。这一节讲清楚 gcd 为什么能这么算,以及 gcd 和 lcm 之间那条必须记住的关系。

七~九年级难度 ★★★14 分钟

定义与记号

a,b 不全为零,它们的所有公因数里最大的那个,叫最大公因数,记作 gcd(a,b),也写作 (a,b)。

所有公倍数里最小的正数,叫最小公倍数,记作 lcm(a,b),也写作 [a,b]。

gcd(a,b)=1 时,说 a,b 互素。注意互素不要求两个数都是素数,8 和 9 就互素。

辗转相除法

求 gcd(1071,462),不用分解质因数:

1071=462×2+147 462=147×3+21 147=21×7+0

最后一个非零余数是 21,所以 gcd(1071,462)=21。

为什么可以这样

关键在于:gcd(a,b)=gcd(b, amodb)。

因为 a=bq+r,任何整除 a 和 b 的数必然整除 r=a−bq;反过来,任何整除 b 和 r 的数必然整除 a。所以两边的公因数集合完全相同,最大公因数自然相等。

这个等式让两个大数越除越小,几步就到底。手算两位数、三位数的 gcd,辗转相除比分解质因数快得多。

那条必须记住的关系

gcd(a,b)·lcm(a,b)=ab

证明思路:把 a,b 分解成素数幂,gcd 取每个素因子的最小指数,lcm 取最大指数,两者相加正好等于 a,b 中该素因子指数之和。

所以知道 gcd 和其中一个数,就能反求 lcm,反之亦然。

例题

例1 辗转相除

求 gcd(2026,1518)。

解: 2026=1518×1+508 1518=508×2+502 508=502×1+6 502=6×83+4 6=4×1+2 4=2×2+0

最后一个非零余数是 2,所以 gcd=2。

例2 用乘积关系

已知 gcd(a,b)=6,lcm(a,b)=180,求 ab。

解:ab=gcd·lcm=6×180=1080。

例3 互素的性质

证明:若 gcd(a,b)=1,且 a∣bc,则 a∣c。

解:由贝祖定理,存在整数 x,y 使 ax+by=1。两边乘 c: acx+bcy=c a 整除 acx(这一步直接由 a∣acx 得出),也整除 bcy(因为 a∣bc),所以 a 整除它们的和 c。

这条性质叫“互素可约”,它补上了“除法不能随便约”的那个缺口:能约的前提是互素。

例4 求所有解

求所有的正整数 a,b,使 a+b=30 且 gcd(a,b)=5。

解:设 a=5m,b=5n,gcd(m,n)=1。则 5(m+n)=30,m+n=6。

互素且和为 6 的组合:(1,5)、(5,1)。(2,4 不互素,3,3 不互素)

所以 (a,b)=(5,25) 或 (25,5)。

例5 三个数

求 gcd(84,126,210) 与 lcm(84,126,210)。

解:分解:84=22·3·7,126=2·32·7,210=2·3·5·7。

gcd 取最小指数:21·31·71=42。

lcm 取最大指数:22·32·5·7=1260。

三个数不能再用 gcd·lcm= 乘积,那条只对两个数成立。

三个坑
  1. 互素当成都是素数:8 和 9 互素,但都不是素数。
  2. 三个数套两个数的公式:gcd(a,b,c)·lcm(a,b,c)≠abc。
  3. 辗转相除最后一步搞错:答案是最后一个非零余数,不是 0。
练习(先做,再看答案)
  1. 求 gcd(391,299)。
  2. 已知 gcd(a,b)=8,ab=384,求 lcm(a,b)。
  3. 证明:gcd(a,a+1)=1。
  4. 求所有的正整数 a,b,使 ab=72 且 gcd(a,b)=3。
  5. 证明:若 gcd(a,b)=1,则 gcd(a+b,a−b) 只能是 1 或 2。
看答案

1. 391=299+92,299=92×3+23,92=23×4+0,故 gcd=23。

2. lcm=384/8=48。

3. 设 d=gcd(a,a+1),则 d∣(a+1)−a=1,故 d=1。

4. 设 a=3m,b=3n,gcd(m,n)=1,mn=8。互素组合 (1,8)、(8,1),故 (3,24)、(24,3)。

5. 设 d=gcd(a+b,a−b),则 d∣(a+b)+(a−b)=2a,d∣2b。因 gcd(a,b)=1,d∣2,故 d=1 或 2。

一页速记
  • gcd 用辗转相除:gcd(a,b)=gcd(b,amodb),答案是最后非零余数
  • gcd(a,b)·lcm(a,b)=ab(只对两个数)
  • 互素 ≠ 都是素数
  • gcd(a,b)=1 且 a∣bc ⇒ a∣c
  • 求“和为定值 + gcd 定值”:设出倍数,转成互素问题
看完了? 去 整除、同余与不定方程 做配套练习,或回到 竞赛总览 挑下一个专题。想动手刷题、看看这些方法在题目里怎么用,去 奥数挑战。