広告スペース(バナー)
🐘PHP レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 48 / 68

最大公約数・最小公倍数を求める(ユークリッドの互除法)

このレッスンでは、ユークリッドの互除法を使って最大公約数と最小公倍数を求める方法を学び、再帰関数の基本を体験することを目標にします。「PHP 最大公約数 求め方」で調べている方向けです。

ユークリッドの互除法は、2つの数の最大公約数(GCD)を効率よく求める古代からのアルゴリズムです。「大きい方を小さい方で割った余りで、また同じ計算を繰り返す」を余りが0になるまで続けます。

サンプルコードでは、gcdFunc($a, $b)関数が$b === 0になるまでgcdFunc($b, $a % $b)という形で自分自身を呼び出し続けています。最小公倍数(LCM)は、最大公約数を使った計算式($a * $b) / gcdFunc($a, $b)で求められる、という2つのアルゴリズムのつながりも確認してみましょう。

初心者がよくつまずくのが、なぜこの計算式で最小公倍数が求まるのかという理屈です。2つの数の積を最大公約数で割ると最小公倍数になる、という数学的な関係を知っておくと、単なる暗記ではなく理解を伴った実装ができます。

自作するより組み込みの考え方を使う方が安全で、アルゴリズムの理解にもつながる練習題材です。再帰関数の練習題材としても非常によく使われる、数学とプログラミングの両方の基礎が詰まった有名なアルゴリズムです。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではPHPを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
分数を約分するような、ミニ計算ツールが作れるようになります。
広告スペース(バナー)
広告スペース(記事内)