最大公約数(GCD)計算 — ユークリッドの互除法
ユークリッドの互除法のすべての手順、ベズー係数 x・y、最小公倍数、存在する場合のモジュラ逆元つきで最大公約数を求めます。
| 段階 | 割り算 | 商 | 余り |
|---|---|---|---|
| gcd(1071, 462) | 1,071 = 2 × 462 + 147 | 2 | 147 |
| gcd(1071, 462) | 462 = 3 × 147 + 21 | 3 | 21 |
| gcd(1071, 462) | 147 = 7 × 21 + 0 | 7 | 0 |
この最大公約数計算は、ユークリッドの互除法で 2 つの整数の最大公約数を求め、整数論やプログラミングの授業で示されるとおりに、すべての割り算の手順を表示します。拡張アルゴリズムにより、ax + by = gcd(a, b) を満たすベズー係数 x、y と、2 数が互いに素のときのモジュラ逆元も求めます。整数を追加すれば、リスト全体をまとめて計算できます。
使い方
- 2 つの整数 a と b を入力します。
- 必要なら、最大公約数と最小公倍数に含める整数をさらに並べます。
- 最大公約数を確認し、表で互除法の手順をたどります。
- ベズー係数やモジュラ逆元は、ディオファントス方程式や暗号の演習に使います。
計算式
gcd(a, b) = gcd(b, a mod b)、余りが 0 になるまで繰り返す
各ステップで、大きい方の数を小さい方で割った余りに置き換え、最後の 0 でない余りが最大公約数です。手順を逆にたどると、a·x + b·y = gcd(a, b) を満たす整数 x、y が得られ、これがベズーの等式です。また lcm(a, b) = |a × b| ÷ gcd(a, b) です。
計算例
a = 1071、b = 462 の場合、1071 = 2 × 462 + 147、462 = 3 × 147 + 21、147 = 7 × 21 + 0 です。最後の 0 でない余りから gcd = 21 になります。逆に代入すると 21 = 1071 × (−3) + 462 × 7 なので x = −3、y = 7、最小公倍数は 1071 × 462 ÷ 21 = 23,562 です。
よくある質問
ユークリッドの互除法はなぜこんなに速いのですか?
2 ステップごとに余りが少なくとも半分になるため、ステップ数は数の大きさではなく桁数に比例して増えます。15 桁の入力でも 100 ステップ未満で終わります。
互いに素とは何ですか?
2 つの整数の最大公約数が 1 であるとき、互いに素といいます。8 と 15 がその例です。このときに限り、a の b を法とする逆元が存在します。
ここからモジュラ逆元を得るには?
gcd(a, b) = 1 のとき、係数 x が a·x ≡ 1 (mod b) を満たします。a = 3、b = 11 なら 3 × 4 = 12 = 11 + 1 なので、逆元は 4 です。
数の符号は関係しますか?
0 でない数のリストの最大公約数は正なので、gcd(−12, 18) = 6 です。ベズー係数は、入力した符号のままで等式が成り立つように調整されます。
最終更新:
この入力内容のページアドレス: https://kakao.mobile/ja/tools/gcd-calculator/
このツールを引用する
kakaoCalc. (2026, November 8). 最大公約数(GCD)計算 — ユークリッドの互除法. https://kakao.mobile/ja/tools/gcd-calculator/
“最大公約数(GCD)計算 — ユークリッドの互除法.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/gcd-calculator/.