2
私はこのアルゴリズムの割り当てを持っています。私の解決策はwiki hows'の解決策に基づいています.2つの数値のLCMを正しく計算するこのコードがあります。私はすでにwiki howsで他の方法を試しましたが、私のロジックは非常に間違っています。Euclidアルゴリズムを使用して配列または複数の整数のLCMを計算する方法は?
数字の範囲にこのコードを適用するにはどうすればよいですか? [245,244,243 ... 45]のようにこのコードに基づいています。複数の数値のLCMを取得する必要があります
function smallestCommons(arr) {
var max,
min,
product,
rem;
max = Math.max.apply(Math, arr);
min = Math.min.apply(Math, arr);
product = max*min;
function gcd(max,min) {
debugger;
rem = max%min;
max=min; // update variables until remainder is equal to 0
min=rem;
if(rem === 0) {
return max; // return the max variable for GCD
} else {
return gcd(max,min);
}
}
return product/gcd(max,min);
}
smallestCommons([210,45]);
ヒントは、次の性質が成り立つ 'LCM(A、B、C)= LCM(LCM(B、C))'。 – redneb
a、b、cとは何ですか?この部分(a、lcm(b、c))は、aをbとする再帰ですか?それを手に入れてはいけない、私は数学では良くない、これは数式ですか? – learningjavascriptks
はい、それは数式です。すべての整数 'a'、' b'、 'c'に当てはまります。 – redneb