1.タスクと要件
最小公倍数
次の2つの指定されたパラメータの最小公倍数、およびシーケンシャル番号割り切れるその間を見つけることができます。
範囲が2つの数値の配列である、二つの数字は、数値順である必要はありません。
例えば、および3 1 - 1と3とそれらを見つけることができるの間で割り切れるすべての数値の最小公倍数。
あなたが動けなくなる場合は、リード・検索・掲載の大きな動きを開くことを忘れないでください。独自のコードを記述し、他の人と一緒にプログラミングを試してみてください。
ここではあなたのためにいくつかの有用なリソースは次のとおりです。
テストデータ:smallestCommons([1, 5])
これは、数値を返す必要があります。smallestCommons([1, 5])
それは60を返す必要があります。smallestCommons([5, 1])
それは60を返す必要があります。smallestCommons([1, 13])
これは、360 360を返す必要があります。
2.私の解決策
1 // 公約数参考:ブログパーク:HTTPS://www.cnblogs.com/Kiven5197/p/5656200.html 2 。3 関数smallestCommons(ARR){ 4 arr.sort(関数(A、B){ 戻り A - B;}); 5。 VARの結果= 1 ; 6。 ための(I = ARR [0]; I <= ARR [1]; I ++ ){ 7。 結果= LCM(結果、I); 8。 } 9。 リターン結果、 10 } 。11 12は、 13である smallestCommons([1,5 ]); 14 15 // 2つの数の最大公約数、ユークリッドアルゴリズム(ユークリッド) 16 関数GCD(A、B){ 17。 18である VaRのR&LT; 19 ながら(B> 0 ) 20である { 21は R&LT = A%B; 22れる A = B; 23は、 B = R&LT; 24 } 25 リターンA、 26である } 27 28 // 2つの数の最大公約数、減算 29 関数gcd2(B){ 30 ながら(=!B){ 31で IF(> B){ 32 、A = A- B、 33のIS } 他{ 34は、 B = B- ; A 35 } 36 } 37 リターンA、 38である } 39 40 // 2つの数の最小公倍数を見つける(生成物は2つの数のその最大公約数で割った値) 41である 関数LCM(A、B){ 42は、 リターン A * B / GCD(A、B); 43である // リターンA * B / gcd2(A、B); 44です }
3.他の解決策が見つかりました。
// CSDNます。https://blog.csdn.net/kyr1e/article/details/78717760
//ブログパークます。https://www.cnblogs.com/lilicat/p/6256025.html