ユークリッド互除法
目的
最近ユークリッド互除法をコードに落とし込む機会があったのですが, 自分の理解を整理できていなかったのでまとめます.
ユークリッド互除法とは
2 つの自然数 の最大公約数を計算する方法です.
自然数 の最大公約数を と表す場合, 以下の定理を用いて計算します.
とし, を で割ったときの商を 余りを とする.
つまり , <
このときに となる
例1.
まず, として, の式を埋めてみましょう.
ユークリッドの互除法より, です.
なので, として を埋めると以下の様になります.
このとき, と の最大公約数は 26 であることが明らかです.
よって, 26 が最大公約数となります.
ユークリッド互除法の証明
それでは, となることを証明します.
ここで と定義します.
まずこの式に立ち返りましょう.
より, が成り立ちます.
よって, は共に を因数に含むことがわかります.
そして, なので, であることがわかります.より, であることに注目すると,
より, が成り立ちます.
よって, は共に を因数に含みます.
そして, なので, であることがわかります.
1, 2 より が成り立ちます.