2つの数の最大公約数

目次
2つの数の最大公約数
2つの数の最大公約数
@ creator • Click to Play Video Inline
🎵 2つの数の最大公約数
最大公約数の求め方を完全網羅!すだれ算から互除法まで徹底解説

算数や数学の基礎でありながら、受験やプログラミング、実生活の割り当て問題でも頻出する「最大公約数(GCD: Greatest Common Divisor)」。2つの数に共通する約数のうち最大のものを求める計算ですが、「すだれ算と素因数分解のどちらを使うべきか」「3つの数になった途端に手が止まる」「3桁や4桁の大きな数が出ると計算ミスが多発する」といった悩みを抱える学習者や保護者は少なくありません。

最大公約数を素早く正確に導き出すためには、数値の大きさや個数に応じて最適な解法を選択する戦略が欠かせません。基本となる素因数分解やすだれ算(連除法)の手順から、高校数学Aや難関中学受験でも重宝される強力なアルゴリズム「ユークリッドの互除法」、さらにはPythonによるプログラミング実装まで、現場の指導ノウハウを交えて体系的に解説します。

📌 【この記事の重要ポイントまとめ】
  • 要点1:基本計算は「すだれ算(連除法)」、理論の理解には「素因数分解」、3桁以上の大きな数は「ユークリッドの互除法」と使い分けるのが最も効率的。
  • 要点2:3つの数のすだれ算では「全数共通で割れる素数のみ」を左側に掛ける点に注意し、最小公倍数との処理の混同を防ぐことが最大のカギ。
  • 要点3:小学生向けのタイル敷き詰めによる視覚的アプローチから中学受験の文章題攻略、Pythonのmath.gcd()を用いたデータ処理まで即戦力の知識を網羅。

【解法の全体像】状況に合わせて選ぶ!最大公約数の基本と3大アプローチ

最大公約数(GCD)とは、2つ以上の整数に共通する約数(公約数)の中で最も大きな数を指します。例えば、12の約数は【1, 2, 3, 4, 6, 12】、18の約数は【1, 2, 3, 6, 9, 18】であり、共通する公約数【1, 2, 3, 6】の中で最大となる6が最大公約数です。

最大公約数の計算アプローチは、主に以下の3つに大別されます。問題の数値規模や学習段階に応じた適切な手法の選択が、計算速度と正確性を劇的に向上させます。

解法名得意な数値・適した場面計算手順の特徴・メリット編集部の見解・難易度評価
すだれ算(連除法)2桁前後の整数(2〜3個)並べた数を共通の素数で割り続ける。視覚的で計算ミスが起きにくい。初学者から中学受験生まで必須の王道テクニック(難易度:★☆☆)
素因数分解中・高校数学、代数式の処理数を素数の積に分解し、共通する素因数の最小指数を掛け合わせる。数の構造を論理的に把握する上で不可欠な基礎解法(難易度:★★☆)
ユークリッドの互除法3桁〜4桁以上の大きな数「大きい数を小さい数で割り、余りで割る」を余りが0になるまで繰り返す。素因数が見つからない巨大な数でも確実に解ける最強アルゴリズム(難易度:★★★)
当時のメディア報道・掲載写真
【検証資料 1】当時のメディア報道・掲載写真(出典:univ-juken.com)

【実践手順】すだれ算(連除法)と素因数分解のやり方をステップ解説

算数・数学の現場で最も頻繁に活用されるのが、すだれ算(連除法)のやり方素因数分解による最大公約数の求め方です。それぞれの具体的なステップを整理します。

1. すだれ算(連除法)の基本手順

すだれ算は、複数の数を横に並べ、割り算の筆算記号を上下逆にしたような枠線を用いて共通の素数で割っていく手法です。

例として24と36の最大公約数を求めます。

  1. 24と36を横に並べ、両方を割り切れる最小の素数「2」で割ります(商は12と18)。
  2. 12と18をさらに共通の素数「2」で割ります(商は6と9)。
  3. 6と9を共通の素数「3」で割ります(商は2と3)。
  4. 残った商(2と3)に共通する約数が「1」以外になくなったら計算終了です。
  5. 左側に並んだ割った数(除数)をすべて掛け合わせます:2 × 2 × 3 = 12

したがって、24と36の最大公約数は12となります。

2. 最大公約数における「3つの数の連除法」の注意点

3つの数(例:24, 36, 60)を扱う場合、「3つの数すべてを同時に割り切れる素数」のみで割ることが絶対ルールとなります。

途中で「2つの数しか割れない素数」が出てきた場合、最小公倍数の計算ではそのまま下ろして割り算を継続しますが、最大公約数の計算ではその時点で割り算をストップしなければなりません。この境界線を曖昧にしてしまうことが、テストでの失点の主因となっています。

3. 素因数分解による求め方と「互いに素」の定義

高校数学Aの整数論や論理的思考で重視されるのが素因数分解を用いた解法です。

24と36を素因数分解すると以下のようになります。

  • 24 = 2³ × 3¹
  • 36 = 2² × 3²

最大公約数を求める際は、共通して含まれる素因数の「指数の小さい方(または等しい方)」を選び出して掛け合わせます。ここでは 2² と 3¹ を取り出すため、2² × 3¹ = 12 と瞬時に導けます。

なお、2つの正の整数 a, b において公約数が1しか存在しない関係性を「互いに素(coprime / relatively prime)」と定義します。判定方法は単純で、最大公約数を求めた結果が GCD(a, b) = 1 となれば、それらの数は互いに素です(例:8 と 15 はどちらも合成数ですが、最大公約数は1なので互いに素となります)。

桁数が多い大きな数も一瞬!ユークリッドの互除法の計算手順と仕組み

高校数学Aの「約数と倍数」単元で登場するユークリッドの互除法は、紀元前300年頃に記された人類最古のアルゴリズムの1つです。3桁や4桁を超える大きな数の最大公約数を求める場面において、威力を発揮します。

ユークリッドの互除法の基本原理

2つの自然数 A, B(A > B)について、A を B で割った商を q、余りを r とすると、以下の関係式が成り立ちます。

A = B × q + r

このとき、「A と B の最大公約数は、B と余り r の最大公約数に等しい」という数学的定理が互除法の根幹です。数を小さく置き換えながら割り算を繰り返すことで、巨大な素数同士の組み合わせであっても確実に最大公約数を割り出せます。

【計算実例】8633 と 2552 の最大公約数を求める手順

すだれ算では割る素数を見つけることすら困難な「8633」と「2552」の最大公約数を、ユークリッドの互除法で算出してみます。

  1. 8633 ÷ 2552 = 3 余り 977(8633 = 2552 × 3 + 977)
  2. 割る数 2552 を 余り 977 で割る:2552 ÷ 977 = 2 余り 598
  3. 977 を 598 で割る:977 ÷ 598 = 1 余り 379
  4. 598 を 379 で割る:598 ÷ 379 = 1 余り 219
  5. 379 を 219 で割る:379 ÷ 219 = 1 余り 160
  6. 219 を 160 で割る:219 ÷ 160 = 1 余り 59
  7. 160 を 59 で割る:160 ÷ 59 = 2 余り 42
  8. 59 を 42 で割る:59 ÷ 42 = 1 余り 17
  9. 42 を 17 で割る:42 ÷ 17 = 2 余り 8
  10. 17 を 8 で割る:17 ÷ 8 = 2 余り 1
  11. 8 を 1 で割る:8 ÷ 1 = 8 余り 0

余りが0になった直前の除数(割った数)が最大公約数となります。したがって、8633 と 2552 の最大公約数は 1(互いに素) であることが確定します。

活動歴および当時の関連ビジュアル記録
【検証資料 2】活動歴および当時の関連ビジュアル記録(出典:meikogijuku.jp)

【実態検証】教育現場と受験生がつまずく「最小公倍数との混同」の罠

教育現場や保護者への取材データ・学習塾での指導実績を分析すると、多くの学習者が最大公約数(GCD)と最小公倍数(LCM)の違いや見分け方で混乱に陥っている実態が浮かび上がります。

なぜ子どもたちは混同するのか?

混乱の主な原因は、「すだれ算の処理ルールの混淆」にあります。

  • 最大公約数:すだれ算の「左側の列(共通の約数)」だけを掛ける。
  • 最小公倍数:すだれ算の「左側の列」と「一番下の余った商」のすべて(L字型)を掛ける。

特に3つの数を対象とする場合、最小公倍数では「2つだけでも割れれば割り算を続行し、割れない数はそのまま下に下ろす」という例外操作が加わるため、認知的な過負荷が生じやすくなります。

【小学生へのわかりやすい教え方】タイル敷き詰めとグループ分けの視覚化

小学生に教える際は、抽象的な数式から入るのではなく、具体的な物理モデルを活用するのが有効です。

例えば、「縦12cm、横18cmの長方形の部屋に、隙間なく敷き詰められる最も大きい正方形のタイルの1辺の長さは何cmか?」という問いを投げかけます。

「12も18もぴったり割り切れる長さでないとタイルがはみ出てしまう」という体験的な気づきを与えることで、「公約数=どちらもピッタリ分けられるサイズ」「最大公約数=その中で最も大きなサイズ」という概念が直感的に定着します。

【中学受験&プログラミング】得点力を劇的に上げる解法のコツとPython実装

中学受験における文章題の見極めパターン

中学受験の算数において、最大公約数を使うべき問題文には明確なシグナルが存在します。

  • 「できるだけ多くの人に、余りが出ないように同じ数ずつ分ける」
  • 「正方形のタイルで隙間なく敷き詰める(最大の正方形)」
  • 「長方形の周りに等しい間隔で木を植える(木の本数を最も少なくする)」

これらのキーワードが登場した際は、「全体を均等に分割する問題=公約数=できるだけ大きく/最小の個数=最大公約数」と即座に方針を立てることが得点直結のコツです。

Pythonによる最大公約数の実装(math.gcd)

情報入試やデータサイエンス、競プロ(AtCoder等)でも最大公約数は頻出です。Pythonでは標準ライブラリの math.gcd() を使用することで、内部的にユークリッドの互除法が高速実行されます。

import math print(math.gcd(24, 36)) # 出力: 12 # 3つ以上の数の最大公約数(Python 3.9以降は可変長引数に対応) print(math.gcd(24, 36, 60)) # 出力: 12 # ユークリッドの互除法を自作関数で実装する場合 def custom_gcd(a, b): while b: a, b = b, a % b return a print(custom_gcd(8633, 2552)) # 出力: 1 

【プロの結論】計算手法の選び方と学習適性の判断基準

計算の効率化と数学的思考力の向上を両立させるための判断フローは極めて明快です。

  • すだれ算を使うべき人・場面:小学生、中学受験生、日常の暗算、2〜3個の2桁以内の整数。手計算のスピードを最優先する場合。
  • 素因数分解を使うべき人・場面:中学生・高校生、文字式を含む代数問題、約数の個数や総和を併せて求める問題。
  • ユークリッドの互除法を使うべき人・場面:共通する素因数がパッと見つからない3桁以上の整数、高校数学Aの不定方程式(一次不定方程式 ax + by = c)を解く場面、プログラミング実装。
公の場での発言・インタビュー報道記録
【検証資料 3】公の場での発言・インタビュー報道記録(出典:d1ysbfo9sxjda0.cloudfront.net)

【即効チェック】最大公約数の練習問題と詳しい解説

理解を確固たるものにするため、重要パターンを網羅した練習問題に挑戦してみましょう。

問題1(基本:2つの数のすだれ算)

問:48 と 72 の最大公約数を求めなさい。

【解説】
すだれ算を実行します。
48 と 72 を 2 で割ると 24 と 36
24 と 36 を 2 で割ると 12 と 18
12 と 18 を 2 で割ると 6 と 9
6 と 9 を 3 で割ると 2 と 3(互いに素になったので終了)
割った数を掛けると、2 × 2 × 2 × 3 = 24 となります。

問題2(応用:3つの数の連除法)

問:36, 54, 90 の最大公約数を求めなさい。

【解説】
3数すべてを同時に割れる素数を選びます。
36, 54, 90 を 2 で割ると 18, 27, 45
18, 27, 45 を 3 で割ると 6, 9, 15
6, 9, 15 を 3 で割ると 2, 3, 5
2, 3, 5 に共通する約数は1以外にないため終了。
最大公約数は 2 × 3 × 3 = 18 です。

問題3(発展:ユークリッドの互除法)

問:697 と 493 の最大公約数を求めなさい。

【解説】
互除法を適用します。
697 ÷ 493 = 1 余り 204
493 ÷ 204 = 2 余り 85
204 ÷ 85 = 2 余り 34
85 ÷ 34 = 2 余り 17
34 ÷ 17 = 2 余り 0
余りが0になった時の割る数は 17。したがって最大公約数は 17 です。

【最大公約数の求め方】に関するよくある質問(FAQ)

Q1:3つの数のすだれ算で、2つしか割れない素数が出てきたらどうすればいいですか?
A1:最大公約数を求める場合は、「3つの数すべて」を割ることができなくなった時点で計算を終了します。2つだけ割れる素数で割り算を続けてよいのは「最小公倍数」を求める場合のみです。混同しないよう厳格に区別してください。

Q2:互いに素な2つの数の最大公約数はいくつになりますか?
A2:必ず「1」になります。「互いに素」とは公約数が1以外に存在しない状態を指すため、最大公約数は定義上 1 となります(例:9 と 14 の最大公約数は 1)。

Q3:分数の約分を一発で終わらせるにはどの求め方が有効ですか?
A3:分子と分母の数値が大きい場合は「ユークリッドの互除法」で最大公約数を割り出し、その数で分子・分母を一度だけ割るのが最も確実です。素因数が見当たらずに何度も2や3で割り続ける手間を完全に省けます。

まとめ:数理的思考力を高める最適な解法選び

最大公約数の求め方は、単なる機械的な計算作業ではありません。数の構造を分解して把握する「素因数分解」、実務的で素早い「すだれ算」、そして数学的論理の極致である「ユークリッドの互除法」という3つの武器を用途に応じて自在に使い分けることが肝要です。

日々の算数・数学の学習から受験対策、さらにはプログラミングにおけるアルゴリズム構築まで、本質的な仕組みを理解した上で最適なアプローチを選択してください。 (出典: 最大 公約 数 求め 方(Yahoo!ニュース)

最大 公約 数 求め 方
最大 公約 数 求め 方
最大 公約 数 求め 方