js-找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。

Posted ZhangCui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js-找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。相关的知识,希望对你有一定的参考价值。

存档。

找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。

 1 function smallestCommons(arr) {
 2   //分解质因数法,分解为若干个质数相乘
 3   var arrratio=[];
 4   var l=0;
 5   var min=Math.min(arr[0],arr[1]);
 6   var max=Math.max(arr[0],arr[1]);
 7   for(var i=min+1;i<max;i++){
 8     arr.push(i);
 9   }
10   
11 /*  var prime=[2];
12   for(var j=3;j<=max;j++){
13     var isprime=1;
14     for(var k=2;k<j;k++){
15       if(j%k===0){
16         isprime=-1;
17       }
18     }
19     if(isprime===1){
20       prime.push(j);
21     }
22   }*/
23   
24   var arrtemp=[];
25   for(var j=2;j<=max;j++){
26     arrtemp.push(j);
27   }
28   var prime=arrtemp.filter(function(val){
29     for(var k=2;k<val;k++){
30       if(val%k===0){
31         return false;
32       }
33     }
34     return true;
35   });
36 
37   while(arr.reduce(function(a,b){return a+b;})!==(max-min+1)){
38     for(var m=0;m<prime.length;m++){
39       var isratio=-1;
40       for(var n=0;n<arr.length;n++){
41         if(arr[n]%prime[m]===0){
42           isratio=1;
43           arr[n]=arr[n]/prime[m];
44         }
45       }
46       if(isratio===1){
47         arrratio[l++]=prime[m];
48       }
49     }
50   }
51   
52   return arrratio.reduce(function(a,b){return a*b;});
53   
54 }
55 
56 
57 smallestCommons([12,13]);

 

以上是关于js-找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。的主要内容,如果未能解决你的问题,请参考以下文章

Fcc找出能被给定的两个参数和参数之间所有连续数字整除的最小公倍数。

Smallest Common Multiple

FCC 中级算法题 最小公倍数

Smallest Common Multiple

[JS]求一组数的最小公倍数

Smallest Common Multiple FreeCodeCamp