➗ 最大公約数・最小公倍数

複数の整数の最大公約数(GCD)と最小公倍数(LCM)を計算します。

入力

カンマまたはスペース区切りで2個以上(例: 12, 18, 24)

最大公約数(GCD)

—

※ 各数の絶対値で計算します。0は最大公約数の計算では無視され、最小公倍数の計算では結果が0になります。

解説

最大公約数(GCD:Greatest Common Divisor)は、入力した整数すべてを共通して割り切れる最大の整数です。最小公倍数(LCM:Least Common Multiple)は、入力した整数すべての倍数になる最小の正の整数です。たとえば12と18なら、両方を割り切れる最大の数は6なので最大公約数は6、両方の倍数になる最小の数は36なので最小公倍数は36です。分数の約分・通分、歯車やイベントの周期合わせ、タイルやブロックを等分する計算などで役立ちます。

このツールは最大公約数を『ユークリッドの互除法』で求めます。2数 a, b について、a を b で割った余り r を使い「gcd(a, b) = gcd(b, r)」という関係を、余りが0になるまで繰り返す方法です。たとえば gcd(18, 12) は 18÷12=余り6 → gcd(12, 6) → 12÷6=余り0 なので最大公約数は6。素因数分解をしなくても少ない割り算で速く求められるのが利点です。

最小公倍数は「LCM(a, b) = a × b ÷ GCD(a, b)」の関係で求めます。たとえば12と18は、積が216、最大公約数が6なので 216÷6=36 が最小公倍数です。3個以上の場合は、まず先頭2つの最小公倍数を出し、その結果と次の数の最小公倍数を…という形で順番に組み合わせていきます。最大公約数も同様に、隣り合う数のgcdを順に取っていきます。

具体例として 12, 18, 24 の3つを入れると、最大公約数は6(12も18も24も6で割り切れる最大の数)、最小公倍数は72(12・18・24すべての倍数になる最小の数)になります。最大公約数は数を増やすほど小さく(または同じに)なり、最小公倍数は数を増やすほど大きく(または同じに)なります。

各数は絶対値で扱います。最大公約数の計算では0は無視され(gcd(0, x)=x)、最小公倍数に0が含まれる場合は結果が0になります。計算はすべてブラウザ内のJavaScript BigIntで行うため、通常の数値型の上限を超える桁数の大きな整数でも桁あふれせず正確に求められ、入力値が外部に送信されることもありません。

よくある質問

最大公約数の求め方は?

ユークリッドの互除法を使います。大きい数を小さい数で割り、余りが出たら「小さい数」と「余り」で同じ割り算を繰り返し、余りが0になったときの割る数が最大公約数です。例: 18と12は 18÷12=余り6、12÷6=余り0 なので6。素因数分解で共通の素因数を掛け合わせても同じ答えになります。

最小公倍数の求め方は?

「2数の積 ÷ 最大公約数」で求めます。例: 12と18は積216、最大公約数6なので 216÷6=36。3個以上のときは、先頭2つの最小公倍数を出してから次の数と組み合わせる、という手順を繰り返します。

3個以上の整数でも計算できますか?

はい。カンマまたはスペースで区切れば、2個以上の任意の個数を計算できます。最大公約数・最小公倍数とも、隣り合う数を順番に組み合わせて全体の値を求めます。例: 12, 18, 24 → 最大公約数6・最小公倍数72。

0や負の数を入れるとどうなりますか?

各数は絶対値で計算します。最大公約数では0は無視され(gcd(0, x)=x)、最小公倍数に0が含まれる場合は0×何かが0になるため結果は0になります。

最大公約数が1になるのはどんなときですか?

共通の素因数を1つも持たないときです(たとえば 8 と 15)。このような関係を「互いに素」といい、分数なら既約(これ以上約分できない)であることを意味します。

とても大きな数でも正確ですか?

はい。JavaScriptのBigIntで計算しているため、通常の数値型(約9007兆まで)の上限を超える大きな整数でも桁あふれせず正確に計算します。

最も簡単な整数比とは何ですか?

入力した各数を最大公約数で割った、これ以上約分できない整数の比です。例: 12, 18, 24 は最大公約数が6なので 2 : 3 : 4 になります。分数の約分や材料・分量の割合を最も簡単な形で表したいときに使えます(すべて0のときは比が定義できないため表示しません)。