かなこと仲良く数学、無料のオンライン学習塾

主に数学と数学に関するプログラミングを扱っています。小学生~大学入試までの算数と数学の問題と詳しい解説をしていきます。普通の生徒はコメント欄で質問し放題です! 特別生徒は一名募集していて毎週日曜日に専用の問題が出て、ツイッターで質問し放題です笑

javascriptで最小公倍数を求める関数を作っておく

~最小公倍数を求める関数を作っておく~

分数を約分する関数に続き、分数を通分する関数を作っておきます。 と思ったのですがそれには最小公倍数を求めておく必要があるのでまずは 最小公倍数を求める関数をjavascriptで作っておきます。


目次を開く


最小公倍数とは

例えば4と5の最小公倍数は

\[ 4と5は同じ数で割り切れるものがない \]

この場合同じ数で割り切れる数字がないので

そのまま4と5をかけたものが最小公倍数となります。

\[ 4×5=20 \]

よってこの場合20が最小公倍数になります。


次に6と8の場合を考えてみます。

\[ 6÷2=3   8÷2=4 \]

もうこれ以上割れないですよね

この場合はどちらとも2で割れたので

\[ 2× \]

割った残り

\[ 3×4 \]

を全てかけたもの

\[ 2×3×4=24 \]

これが最小公倍数となります。


これで最小公倍数の求め方の公式が出来上がりました。

最小公倍数=共通因数×残った数

ですね

これを覚えておくとプログラミングをする時はもちろん実は大学受験まで役立ちます。


それをプログラムにする

次にこれをプログラムにしていきます。

aとbの最小公倍数を考えます


aとbの大小を判別する

aとbのどちらが大きいかを判別しておきます。

if(a< b){
var min=a;
}
else{
var min=b;
}

count2からminまで同じ数で割り切れるかを判別してループ

aとbをcount2~minまで割っていって同じ数で割り切れたらその商を再びa,bに代入してcountを2に戻してループさせます。


for(var count=2; count< min; count++){
     if(a%count==0 && b%count==0){
       a=a/count;
       b=b/count;
//ここでカウントを1に戻すことによってfor文ではcount2からはじまります。
       count=1;
    }
}

countを毎回配列に入れる

countが共通因数になるのでこれを毎回配列に入れておきます。

//配列作成
var insu=[];

for(var count=2;count< min;count++){
     if(a%count==0 && b%count==0){
       a=a/count;
       b=b/count;

//countを配列insu[]に入れる
       insu.push(count);;

//ここでカウントを1に戻すことによってfor文ではcount2からはじまります。
       count=1;
    }
}

最小公倍数の公式を使う

最小公倍数の公式は

最小公倍数=共通因数×残った数

でしたよね。

これをプログラムにするとこうなります。

配列の中身(共通因数)を取り出して掛け算してそれに残ったaとbもかける。

var minkoubai=1;
for(var i=0; i< insu.length; i++){
minkoubai=minkoubai*insu[i];
}
//これが最小公倍数になる
minkoubai=minkoubai*a*b;

ここまでまとめたプログラムを書く

if(a< b){
var min=a;
else{
var min=b;
}

//配列作成
var insu=[];
for(var count=2;count< min;count++){
     if(a%count==0 && b%count==0){
       a=a/count;
       b=b/count;

//countを配列insu[]に入れる
       insu.push(count);

//ここでカウントを1に戻すことによってfor文ではcount2からはじまります。
       count=1;
    }
}

var minkoubai=1;
for(var i=0; i< insu.length; i++){
minkoubai=minkoubai*insu[i];
}
//これが最小公倍数になる
minkoubai=minkoubai*a*b;

関数の名前と引数、戻り値を決める

名前はmin_koubaiで引数はa,bにしておきます。

戻り値は最小公倍数なのでminkoubaiですね。

function min_koubai(a,b){
//関数の処理内容

//minkoubaiを戻す
return minkoubai;
}

ここまでを全て書く

function min_koubai(a,b){

if(a< b){
var min=a;
else{
var min=b;
}


//配列作成
var insu=[];
for(var count=2;count< min;count++){
     if(a%count==0 && b%count==0){
       a=a/count;
       b=b/count;

//countを配列insu[]に入れる
       insu.push(count);

//ここでカウントを1に戻すことによってfor文ではcount2からはじまります。
       count=1;
    }
}

var minkoubai=1;
for(var i=0; i< insu.length; i++){
minkoubai=minkoubai*insu[i];
}

//これが最小公倍数になる
minkoubai=minkoubai*a*b;

//minkoubaiを戻す
return minkoubai;
}//関数終わり


関数の説明

この関数は最小公倍数を求める関数です。

関数はmin_koubai(a,b)でa,bに数値を入れると最小公倍数の値が戻ってきます。


実際の使い方

var hensu=min_koubai(6,7);と入力することで

hensuに42が入ります。


みなさんが使えるようにする

数値を入力して下さい。
数値を入力して下さい。