【JavaScript】 最小公倍数を求める

更新日:2023/06/29

JavaSciptで最小公倍数を求めてみます。

 

考え方

二つの値の最小公倍数は、次の式で求めることができます。


最小公倍数 = 値1 × 値2 ÷ 値1と値2の最大公約数

最大公約数の求め方は、次の記事で紹介しています。

上の記事で、最大公約数を計算する関数として次のコードを挙げています。

最大公約数計算例


const greatestCommonDivisor = ( value1 , value2 )=>value2===0 ? value1
        : greatestCommonDivisor( value2 , value1 % value2 );

以降のコードは、この関数を使用します。

 

コード例

上記の式に当てはめて、最小公倍数を計算する関数を作成してみます。

最小公倍数計算例


const leastCommonMultiple = (value1 , value2) =>
    value1 * value2 /  greatestCommonDivisor( value1 , value2 );

次のような計算結果になります。


console.log( leastCommonMultiple(3,5) );
// 結果 : 15
console.log( leastCommonMultiple(4989,5963) );
// 結果 : 29749407

 

3つ以上の値の最小公倍数

3つ以上の値の最小公倍数は、まず二つの値の最小公倍数を求め、その値と他の値の最小公倍数を求めます。
さらにその値と他の値の最小公倍数を求めることを繰り返して、最後に求めた最小公倍数が全ての値の最小公倍数になります。

3つ以上の値の最小公倍数計算例


const leastCommonMultiple2 = (valueArray) =>
    valueArray.reduce( (a,b)=>leastCommonMultiple(a,b) );

次の例のように、値は配列で渡します。

console.log( leastCommonMultiple2([11,12,13,14,15]) );
// 結果 : 60060

 

デモ

このページに内容を元に、最小公倍数を求めるツールを作成しました。

更新日:2023/06/29

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。