【参考URL】
・http://moefeather.net/it/programming/2889/
・https://note.affi-sapo-sv.com/js-least-common-multiple.php
【最大公約数を求める】
最大公約数 - Wikipedia
というのを使用すると最大公約数を求めることができるようです。
// aとbの最大公約数を求める
saidaiKoyaku = (a,b) => {
//数値を代入
var m = a;
var n = b;
// "m/n"ができない場合に数字を入れ替える
if(n > m){
var tmp = m;
m = n;
n = tmp;
}
//mをbで割った余りをmodに代入し、aにbを、bにmodを代入
//bの値が0になるまで上記の捜査を繰り返す
while(n !== 0){
var mod = m % n;
m = n;
n = mod;
}
//繰り返しが終わった際のmの値がa,bの最大公約数
return m;
}
saidaiKoyaku(a,b);
このコードではmとnを比較した際にnのほうが大きかった場合、mとnを入れ替えるコードを入れています。
最初、下記のように記載したのですがうまく動きませんでした。
if(n > m){
m = n;
n = m;
}
上記のようなコードだと、”m = n”を実行した際に、mにnが代入されます。
その後、nにnが代入されるので結果としてmとnの値が同じになってしまいます。
これを回避するために、一時的に値を保存する変数を使用します。
そのため今回は”temp”を使用して、そこにmの値を格納しています。
【最小公倍数を求める】
最小公倍数は以下で求めることが可能です。
最小公倍数 = a × b ÷ aとbの最大公約数
//aとbの最小公倍数を求める
saishoKobai = (a,b) => {
return a * b / saidaiKoyaku(a,b);
}
コメント