整数は、3つ以上入力することも可能です。
入力する際には、それぞれの整数を空白や改行で区切ってください。
計算には、javascriptライブラリmath.jsを使用しています。
最大公約数とは、整数がいくつかあった場合に、それらを共通して割り切れる数のうち、最大の数を意味します。
記号で表す場合は、「gcd」を使います。
たとえば、8と12の最大公約数なら「gcd(8,12)」と表記します。
ちなみに、gcdは、英語の”Greatest common divisor”の略語です。
最大公約数の簡単な求め方
最大公約数の求め方には、大きく分けて2つのやり方があります。
1つは、素因数分解を使う方法。
もう1つは、ユークリッドの互除法を使う方法です。
素因数分解を使った最大公約数の求め方
素因数分解を使う場合は、対象の整数をすべて素因数分解して、それらに共通する素因数を掛け合わせます。
8と12の最大公約数を求める場合は、まずは、それぞれを素因数分解します。
それぞれに共通するのは 22 ですから、4 が最大公約数になります。
ユークリッドの互除法
8と12のような単純な数であれば素因数分解するのも簡単ですが、桁が増えてくるとそうもいきません。
そもそも何の数で割りきれるのか分からない場合も多いと思います。
そういうときに便利なのが、ユークリッドの互除法を使った求め方です。
ユークリッドの互除法を理解するには、実際の計算例を見ていただいた方が早いです。
たとえば、1947 と 1848 の最大公約数を求める場合は、次のように計算します。
- 1947 > 1848 なので、大きい方の数 1947 を小さい方の数 1848 で割って、余りを求める。
⇒ 余りは99 - 1848 > 99 なので、大きい方の数 1848 を小さい方の数 99 で割って、余りを求める。
⇒ 余りは66 - 99 > 66 なので、大きい方の数 99 を小さい方の数 66 で割って、余りを求める。
⇒ 余りは33 - 66 > 33 なので、大きい方の数 66 を小さい方の数 33 で割って、余りを求める。
⇒ 余りは0 - 余りが0になったので、最大公約数は33となる。
やり方としては、AとBの2つの数があった場合に、大きい方の数字を小さい方の数字で割って、余りCを求めます。
続いて、先ほどの小さい方の数字Bと、余りCを比べます。
そして、大きい方の数字を小さい方の数字で割って、余りを求めます。
この余りが0になった段階で計算終了です。
計算を繰り返せば最大公約数が求まるので、プログラムのコードを書く場合にも、ユークリッドの互除法をベースにアルゴリズムを組み立てるといいですよ。
エクセルで最大公約数を求める
なお、最大公約数はエクセルで求めることも可能です。
関数名は、gcd()。
引数は、255個まで指定でき、小数を指定すると、小数点以下が切り捨てられて計算されます。
= gcd ( 数値1 , 数値2 , 数値3 … )
GoogleのスプレッドシートやAppleのNumbersといった表計算ソフトにもgcd関数は用意されているので、それらをお使いの場合でも、手軽に計算できますよ。
この記事についてのご感想などをお寄せください。
サイト運営の参考にさせていただきます。
頂いたコメントには、2〜3日以内にメールアドレス宛に回答いたします。(詳細)
メールアドレスの入力ミスにご注意ください。
なお、頂いたコメント及びその後のメール等でのやり取りは、この欄でご紹介させていただく場合がございます。