MathLabs

6年生

最大公約数・最小公倍数とユークリッドの互除法

整数の最大公約数と最小公倍数、およびそれをユークリッドの互除法で効率的に求める方法。

直観最大の共通ピースと最初の共通周期

長さ 4848 cm と 1818 cm の二本のリボンがあり、余りを出さずにできるだけ長い整数の長さに等分したいとする:その最大の長さが gcd⁡(48,18)=6\gcd(48,18)=6 cm、すなわち最大公約数である。逆に、一方の標識灯が 4848 秒ごと、もう一方が 1818 秒ごとに点滅するとき、次に両方が同時に点滅する最初の正の時刻は lcm⁡(48,18)=144\operatorname{lcm}(48,18)=144 秒、すなわち最小公倍数である。

(48,18)を(6,0)へ縮約するユークリッドの互除法を示す有向ステップグラフ
幾何学的ユークリッド互除法:(n+5)×n(n+5)\times n の長方形を可能な限り大きな正方形で順に敷き詰めていくと、余りをちょうど埋め尽くす最後の正方形の1辺が gcd⁡(n+5,n)\gcd(n+5, n) となる。

中高定義、ユークリッドの互除法、積の恒等式

定義: 最大公約数と最小公倍数

正の整数 a,ba,b に対し、最大公約数 gcd⁡(a,b)\gcd(a,b) とは d∣ad\mid a かつ d∣bd\mid b を満たす最大の正の整数 dd である(gcd⁡(a,b)=1\gcd(a,b)=1 のとき、aa と bb は互いに素という)。最小公倍数 lcm⁡(a,b)\operatorname{lcm}(a,b) とは a∣ma\mid m かつ b∣mb\mid m を満たす最小の正の整数 mm である。

gcd⁡(a,b)=gcd⁡(b,r)(a=bq+r, 0≤r<b)\gcd(a,b) = \gcd(b,r) \qquad (a = bq + r,\ 0 \le r < b)

これがユークリッドの互除法の核心ステップである:aa を bb で割って a=bq+r, 0≤r<ba=bq+r,\ 0\le r<b を得ると、gcd⁡(a,b)=gcd⁡(b,r)\gcd(a,b)=\gcd(b,r) によって最大公約数が保たれる。余りが 00 になるまで繰り返せば、aa や bb を素因数分解することなく gcd⁡(a,b)\gcd(a,b) が求まる。

gcd⁡(a,b)⋅lcm⁡(a,b)=ab(a,b>0)\gcd(a,b) \cdot \operatorname{lcm}(a,b) = a b \qquad (a,b > 0)

gcd⁡(a,b)\gcd(a,b) が分かれば、積の恒等式 gcd⁡(a,b)⋅lcm⁡(a,b)=ab\gcd(a,b)\cdot\operatorname{lcm}(a,b)=ab から直ちに lcm⁡(a,b)\operatorname{lcm}(a,b) が得られる:積 abab を gcd⁡(a,b)\gcd(a,b) で割ればよい。

最大公約数・最小公倍数と積の恒等式の例
組 (a,b)(a,b)gcd⁡(a,b)\gcd(a,b)lcm⁡(a,b)\operatorname{lcm}(a,b)積の確認
(8,12)(8,12)4424244×24=8×12=964\times24=8\times12=96
(9,16)(9,16)111441441×144=9×16=1441\times144=9\times16=144
(15,25)(15,25)5575755×75=15×25=3755\times75=15\times25=375
(48,18)(48,18)661441446×144=48×18=8646\times144=48\times18=864

大学ユークリッドの互除法と積の公式が成り立つ理由

a=bq+r, 0≤r<ba=bq+r,\ 0\le r<b を満たす整数 a≥b>0a\ge b>0 に対し、aa と bb の公約数の集合は bb と rr の公約数の集合に等しい;したがって gcd⁡(a,b)=gcd⁡(b,r)\gcd(a,b)=\gcd(b,r) が成り立ち、除法ステップの繰り返しは有限回で停止し、最後のゼロでない余りが gcd⁡(a,b)\gcd(a,b) に一致する。

なぜ正しいのか?

aa から bb の倍数を引いても、bb との公約数が増えたり減ったりすることはない:aa と bb の両方を割り切る数は残り r=a−bqr=a-bq も割り切らねばならず、逆もまた成り立つ。

証明

ステップ1(公約数の集合の一致)。dd を aa と bb の両方を割り切る任意の整数とし、整数 x,yx,y によって a=dxa=dx、b=dyb=dy と書く。すると r=a−bq=dx−dyq=d(x−yq)r=a-bq=dx-dyq=d(x-yq) より d∣rd\mid r となり、dd は bb と rr の両方を割り切る。逆に dd が bb と rr の両方を割り切り、b=dyb=dy、r=dzr=dz と書けるなら、a=bq+r=dyq+dz=d(yq+z)a=bq+r=dyq+dz=d(yq+z) より d∣ad\mid a となり、dd は aa と bb の両方を割り切る。

ステップ2(最大公約数の一致)。組 (a,b)(a,b) と (b,r)(b,r) はまったく同じ公約数の集合を持つので、その最大元も一致する:gcd⁡(a,b)=gcd⁡(b,r)\gcd(a,b)=\gcd(b,r)。

ステップ3(有限回での停止)。各除法ステップの余りは 0≤r<b0\le r<b を満たすので、二つ目の数の列 b>r1>r2>⋯≥0b > r_1 > r_2 > \cdots \ge 0 は非負整数の狭義単調減少列である。このような列は高々 bb ステップで 00 に達する;gcd⁡(rk−1,rk)=gcd⁡(rk,0)=rk\gcd(r_{k-1},r_k)=\gcd(r_k,0)=r_k の段階で、最後のゼロでない余り rkr_k が gcd⁡(a,b)\gcd(a,b) となる。

任意の二つの正の整数 aa と bb に対して、gcd⁡(a,b)⋅lcm⁡(a,b)=ab\gcd(a,b)\cdot\operatorname{lcm}(a,b)=ab が成り立つ。

なぜ正しいのか?

各素数 pp について、gcd⁡(a,b)\gcd(a,b) は a,ba,b における pp の指数の小さい方を取り、lcm⁡(a,b)\operatorname{lcm}(a,b) は大きい方を取る;二つの数の小さい方と大きい方を足せば、常に元の二つの数の和になる。

証明

ステップ1. すべての素数 pp にわたって aa と bb の素因数分解を a=∏ppepa=\prod_p p^{e_p}、b=∏ppfpb=\prod_p p^{f_p} と書く(ep,fp≥0e_p,f_p\ge0 で、ゼロでない指数は有限個のみ)。

ステップ2. 正の整数 d=∏ppcpd=\prod_p p^{c_p} が aa と bb の両方を割り切るのは、すべての pp で cp≤epc_p\le e_p かつ cp≤fpc_p\le f_p のとき、かつそのときに限るので、最大の約数は cp=min⁡(ep,fp)c_p=\min(e_p,f_p) を選ぶ:gcd⁡(a,b)=∏ppmin⁡(ep,fp)\gcd(a,b)=\prod_p p^{\min(e_p,f_p)}。公倍数に対する双対の議論により、両方以上の最小の指数を選んで lcm⁡(a,b)=∏ppmax⁡(ep,fp)\operatorname{lcm}(a,b)=\prod_p p^{\max(e_p,f_p)} を得る。

ステップ3. 任意の二つの実数に対して min⁡(ep,fp)+max⁡(ep,fp)=ep+fp\min(e_p,f_p)+\max(e_p,f_p)=e_p+f_p が成り立つ。したがって二つの積を素数ごとに掛け合わせると、gcd⁡(a,b)⋅lcm⁡(a,b)=∏ppmin⁡(ep,fp)+max⁡(ep,fp)=∏ppep+fp=(∏ppep)(∏ppfp)=ab\gcd(a,b)\cdot\operatorname{lcm}(a,b)=\prod_p p^{\min(e_p,f_p)+\max(e_p,f_p)}=\prod_p p^{e_p+f_p}=\left(\prod_p p^{e_p}\right)\left(\prod_p p^{f_p}\right)=ab となる。

大学実世界での応用と具体例

建設技術者は長方形の床を切り詰めずに敷き詰められる最大の正方形モジュールタイルを選ぶために gcd⁡(a,b)\gcd(a,b) を使い、交通計画者や組込みシステム技術者は周期タスクやバスダイヤの超周期を求めるために lcm⁡(a,b)\operatorname{lcm}(a,b) を使う。また暗号技術では、数千ビットの整数に対するユークリッドの互除法が毎秒何百万回も実行されている。

例: 最大の正方形スラブで中庭を敷き詰める

長方形の中庭の寸法が 4848 m × 1818 m である。切り詰めをせずに、一辺が整数メートルである同一の正方形石板で隙間なく敷き詰めたい。使える最大の一辺の長さは何 m で、石板は何枚必要か。

解答

ステップ1. 一辺 ss m の正方形石板が両方向に切り詰めなしで収まるのは s∣48s\mid48 かつ s∣18s\mid18 のとき、かつそのときに限るので、最大の ss は gcd⁡(48,18)\gcd(48,18) である。

ステップ2. ユークリッドの互除法を実行する:48=2×18+1248=2\times18+12、次に 18=1×12+618=1\times12+6、そして 12=2×6+012=2\times6+0。最後のゼロでない余りは 66 なので、gcd⁡(48,18)=6\gcd(48,18)=6 m。

ステップ3. 石板の枚数を数える:縦に 48÷6=848\div6=8 枚、横に 18÷6=318\div6=3 枚並ぶので、合計 8×3=248\times3=24 枚必要である。

例: 二つのバス路線の同期

路線Aは中央駅を 1212 分ごとに、路線Bは 1818 分ごとに出発する。両方は 08:0008{:}00 に同時に出発した。次に同時出発するのは何分後で、時計の何時何分か。

解答

ステップ1. 路線Aは 1212 分の倍数ごと、路線Bは 1818 分の倍数ごとに出発するので、最初の正の同時出発時刻は lcm⁡(12,18)\operatorname{lcm}(12,18) 分後である。

ステップ2. まず最大公約数を求める:18=1×12+618=1\times12+6、12=2×6+012=2\times6+0 より gcd⁡(12,18)=6\gcd(12,18)=6。

ステップ3. 積の恒等式を適用する:lcm⁡(12,18)=12×186=36\operatorname{lcm}(12,18)=\dfrac{12\times18}{6}=36 分。08:0008{:}00 に 3636 分を足すと、次の同時出発は 08:3608{:}36 である。

(48,18)(48,18) に対するユークリッドの互除法の最初のステップ 48=2×18+1248=2\times18+12 を用いると、どの最大公約数の等式が成り立つか。

二つの正の整数 a,ba,b が ab=180ab=180 かつ gcd⁡(a,b)=6\gcd(a,b)=6 を満たす。lcm⁡(a,b)\operatorname{lcm}(a,b) はいくらか。

次の数の組のうち、互いに素(gcd⁡(a,b)=1\gcd(a,b)=1)であるものはどれか。

歯数 1616 と歯数 2020 の二つの歯車が、印を付けた歯の組を合わせて噛み合っている。同じ印の組が再び最初に噛み合うのは、歯がいくつ進んだときか。

参考文献

  1. David M. Burton (2010). Elementary Number Theory
  2. John H. Conway, Richard K. Guy (1996). The Book of Numbers · DOI:10.1007/978-1-4612-4072-3