2つの数の最大公約数
算数や数学の学習において、多くの学習者が最初につまずきやすい単元の一つが「最大公約数の求め方」です。公約数の意味は理解できていても、扱う数値が2桁、3桁と大きくなったり、対象が3つの数になったりすると、計算ミスや解法の混乱が急増します。さらに、最小公倍数の求め方と混同してしまい、テストや受験本番で失点してしまうケースも少なくありません。
本稿では、小学生にも直感的にわかる「すだれ算(連除法)」の基本から、中学数学の標準である「素因数分解」、高校数学で必須となる「ユークリッドの互除法」、さらにはプログラミング言語Pythonを用いた自動計算まで、あらゆる計算アプローチを体系的に整理しました。文章題を解くための実践的な着眼点も含め、現場の指導データと数学的知見に基づきわかりやすく解説します。
📌 【この記事の重要ポイントまとめ】
- 要点1:最大公約数の解法は数値の規模に応じて「すだれ算」「素因数分解」「ユークリッドの互除法」を使い分けるのが最も効率的。
- 要点2:「3つの数の計算」やすだれ算の処理において、最小公倍数との決定的なルールの違いを正確に把握することが失点防止の鍵。
- 要点3:文章題では「等しく分ける」「余りを出さない最大の〜」というキーワードに着目し、問題の本質を素早く見抜くことが重要。
【解法の全体像】最大公約数の基本概念と最小公倍数との決定的な違い
最大公約数(英語:Greatest Common Divisor / GCD)とは、2つ以上の整数に共通する約数(公約数)の中で、最も大きい数を指します。たとえば「12」と「18」の約数をそれぞれ書き出してみると、その構造が明確になります。
- 12の約数:1, 2, 3, 4, 6, 12
- 18の約数:1, 2, 3, 6, 9, 18
両者に共通して含まれる公約数は「1, 2, 3, 6」であり、その中で最大の数値である「6」が最大公約数となります。小学生が最初に習う「書き出し法」は直感的で理解しやすい反面、数値が大きくなると書き漏らしが発生しやすいため、よりシステマチックな計算法を習得する必要があります。
学習現場で最も多い混乱が、最大公約数と最小公倍数の違いです。公約数は「割ることができる数(元の数より小さい、または等しい)」であるのに対し、公倍数は「共通の倍数(元の数より大きい、または等しい)」を指します。両者の関係性は、2つの自然数 $A, B$ の最大公約数を $G$、最小公倍数を $L$ と置いたとき、$A \times B = G \times L$ という重要な公式によって結びついています。

主要な計算手法を徹底比較|すだれ算・素因数分解・ユークリッドの互除法
最大公約数を求める方法は一つではありません。問題の難易度、数値の大きさ、学習段階(小学校・中学校・高校・実務)に応じて最適なアプローチが存在します。各手法の特徴と適用範囲を下表にまとめました。
| 計算手法 | 適した数値・学習段階 | 計算スピード・難易度 | 編集部の見解・実務評価 |
|---|---|---|---|
| すだれ算(連除法) | 2桁〜3桁前半/小学生〜中学生 | 高速・視覚的でミスが少ない | 日常的な計算や中学受験において最も実用性が高く即効性がある。 |
| 素因数分解 | 2桁〜3桁/中学数学〜高校数学 | 中速・構造理解に最適 | 数の構成要素が視覚化されるため、文字式や論理的証明に強い。 |
| ユークリッドの互除法 | 4桁以上の大きな数/高校数学(数A) | 割り算の反復・機械的に処理可能 | 共通の素因数が見つけにくい巨大な数値でも確実に答えを導ける。 |
| プログラム(Python等) | 桁数無制限/データ処理・プログラミング | 一瞬(計算量 $O(\log(\min(a,b)))$) | 実務やアルゴリズム構築に必須。標準ライブラリで即座に算出可能。 |
【ステップ別解説】現場で使える4大計算法の手順と具体的な解き方
ここでは、代表的な4つの計算手法の手順を具体例とともに詳しく解説します。
1. 小学生にもわかりやすい「すだれ算(連除法)」のやり方
すだれ算(はしご算とも呼ばれます)は、共通して割り切れる素数で同時に割っていく極めて実用的な手法です。
【例題:24 と 36 の最大公約数を求める】
- 24と36を横に並べて書き、割り算の筆算を逆さにしたような記号で囲みます。
- 24と36の共通の約数である「2」で両方を割ります(下に「12」と「18」が残る)。
- 12と18を再び共通の約数「2」で割ります(下に「6」と「9」が残る)。
- 6と9を共通の約数「3」で割ります(下に「2」と「3」が残る)。
- 残った2と3には「1」以外の共通な約数がない状態(互いに素)になったら計算を終了します。
- 左側に並んだ割った数をすべて掛け合わせます:$2 \times 2 \times 3 = 12$。
したがって、最大公約数は「12」となります。左側の数を縦に掛けるだけで算出できるため、計算ミスを大幅に抑制できます。
2. 中学数学の王道「素因数分解」による解き方
中学校で習う素因数分解を活用した方法は、数の内部構造を把握するのに最適です。
【例題:60 と 84 の最大公約数を求める】
- それぞれの数を素因数分解します。
・$60 = 2^2 \times 3 \times 5$
・$84 = 2^2 \times 3 \times 7$ - 両方に共通して含まれる素因数を抽出し、指数の小さい(または等しい)方を採用して掛け合わせます。
・共通する素因数は「2」と「3」
・2の指数はどちらも $2^2$
・3の指数は $3^1$ - 掛け合わせると、$2^2 \times 3 = 12$ となり、最大公約数は「12」です。
3. 巨大な数も一瞬で解ける「ユークリッドの互除法」
「391 と 527」のように、素数が大きく一見して共通の約数が見つけられない場合に威力を発揮するのが、古代ギリシャから伝わるユークリッドの互除法です。「$A$ を $B$ で割った余りを $R$ とするとき、$A$ と $B$ の最大公約数は、$B$ と $R$ の最大公約数に等しい」という原理を用います。
【例題:1073 と 407 の最大公約数を求める】
- 大きい数を小さい数で割ります:$1073 \div 407 = 2$ あまり 259
- 割る数(407)を余り(259)で割ります:$407 \div 259 = 1$ あまり 148
- 前回の割る数(259)を前回の余り(148)で割ります:$259 \div 148 = 1$ あまり 111
- 同様に繰り返します:$148 \div 111 = 1$ あまり 37
- 最後に余りが0になるまで割ります:$111 \div 37 = 3$ あまり 0
余りが0になったときの割った数「37」が最大公約数となります。どんなに巨大な数値であっても、四則演算の割り算を機械的に繰り返すだけで確実に到達できます。
4. 実務・プログラミングにおける Python `math.gcd` の活用
IT分野やデータ分析の現場では、手計算ではなくプログラムを用いて最大公約数を求めます。Python 3.9以降では `math.gcd()` 関数が複数の引数にも完全対応しています。
import math print(math.gcd(1073, 407)) # 出力: 37 # 3つ以上の数の最大公約数(Python 3.9+) print(math.gcd(24, 36, 60)) # 出力: 12 Webブラウザ上で素早く確認したい場合は、Google検索の検索窓に「gcd(1073, 407)」と入力するか、各種オンライン計算機ツールを活用するのが手軽です。

3つの数の最大公約数でミスが多発する理由と対策
「3つの数の最大公約数」をすだれ算で計算する際、学習指導の現場で最も頻発する誤答パターンが存在します。それは「最小公倍数のすだれ算ルール」と混同してしまう現象です。
【鉄則:最大公約数では『3つすべて』を割り切れる数でしか割ってはいけない】
たとえば「24, 36, 60」の最大公約数を求める場合、3つの数すべてを割れる数(公約数)を選びます。
- 24, 36, 60 を「2」で割る $\rightarrow$ 12, 18, 30
- 12, 18, 30 を「2」で割る $\rightarrow$ 6, 9, 15
- 6, 9, 15 を「3」で割る $\rightarrow$ 2, 3, 5
残った「2, 3, 5」の3つの数すべてを割り切れる数は「1」以外に存在しないため、ここで計算を完全終了します。左側の数を掛けて $2 \times 2 \times 3 = \mathbf{12}$ が最大公約数です。
※最小公倍数を求めるすだれ算では「2つだけ割り切れる数があれば割って、割れない数はそのまま下に下ろす」というルールがありますが、最大公約数の計算でこれを適用すると誤答になります。この違いはテストにおける最大のトラップです。
文章題のコツと「互いに素」の見極め方|得点力を伸ばす思考法
テストや入試の文章題では、直接「最大公約数を求めよ」とは書かれていません。問題文の日本語から、最大公約数を用いるべき場面を瞬時に特定する読解力が必要です。
最大公約数を使う文章題の代表的キーワード
- 「余りが出ないように、できるだけ多くの人に同じ数ずつ配る」 $\rightarrow$ 各品目の個数の最大公約数を求める。
- 「縦〇cm、横〇cmの長方形に、できるだけ大きな同じ大きさの正方形を敷き詰める」 $\rightarrow$ 縦と横の長さの最大公約数が正方形の1辺の長さになる。
- 「ある整数で〇を割ると△余り、□を割ると…」 $\rightarrow$ 余りを引いた数値同士の最大公約数を求める。
数学の根幹をなす「互いに素」の重要性
2つの整数 $a, b$ の最大公約数が「1」であるとき、その2数は「互いに素(Coprime / Relatively Prime)」であると定義されます(例:8 と 15)。分数の約分において「これ以上約分できない分数(既約分数)」は、分子と分母が互いに素な関係にあります。高校数学の整数問題や大学入試の証明問題においても、「$a$ と $b$ は互いに素であるとする」という条件設定は頻出の定石パターンです。

【実態検証】教育現場で見える「つまずき」の心理的構造
大手学習塾の指導アンケートや教育心理データの分析によると、算数・数学で計算手順をただ暗記している生徒は、問題形式が少し変化しただけで正答率が急落する傾向が見られます。最大公約数の単元において生徒が抱きがちな誤解と、その処方箋を検証します。
「なぜ割るのか」「なぜ左側だけを掛けるのか」という理屈を視覚的に納得していない場合、認知負荷が高まり、ケアレスミスを引き起こします。たとえば、すだれ算の左側に残る数は「共通して取り出せた因数(かたまり)」であり、下側に残る数は「共通部分を取り除いたあとの残りカス」であることをタイル図などでイメージさせると、最小公倍数との混同は劇的に解消されます。
【プロの結論】おすすめできる人・慎重になるべき人の判断基準
- すだれ算を徹底すべき人:算数・数学の計算速度を上げたい小学生、中学受験生、日常的な計算を手早く済ませたい人。
- 素因数分解を軸にすべき人:中学・高校の定期テスト対策、代数的な理解を深め、文字式の扱いや因数分解へスムーズに移行したい人。
- 互除法をマスターすべき人:共通テストや高校数学Aを攻略したい高校生、暗号理論やプログラミングの基礎アルゴリズムを学びたい人。
【最大 公約数 求め方】に関するよくある質問(FAQ)
Q1:すだれ算で3つの数を計算するとき、2つの数だけ割れる数字が出てきたらどうすればいいですか?
A1:最大公約数を求める場合は、「3つすべての数を割り切れる数」がなくなった時点で計算を終了します。2つの数だけ割れる数字で割ってよいのは「最小公倍数」を求める場合のみです。混同しないよう厳格に区別してください。
Q2:最大公約数が「1」になることはありますか?
A2:あります。共通の約数が「1」しかない場合(例:9 と 14 など)であり、この状態を数学用語で「互いに素(たがいにそ)」と呼びます。計算間違いではありませんので、解答には「1」と記入します。
Q3:桁数が大きい数値の最大公約数を手計算で最も速く解く方法は?
A3:ユークリッドの互除法が圧倒的に速く確実です。素因数分解やすだれ算では、そもそも何で割れるか(素数探し)を見つけるのに膨大な時間がかかりますが、互除法なら機械的な割り算の反復だけで答えに到達できます。
まとめ:数値の特性に合わせた最適な解法選択が成功の鍵
最大公約数の求め方は、単なる計算テクニックの暗記にとどまらず、数の構造を捉える基礎教養です。日常的な2桁・3桁の計算であれば「すだれ算(連除法)」、理論的な裏付けや中学数学の応用には「素因数分解」、そして大きな桁数や入試レベルの難問には「ユークリッドの互除法」と、数値の規模と目的に応じて最適な道具を選び分けることが確実な得点への最短ルートとなります。 (出典: 最大 公約数 求め方(Yahoo!ニュース))