[JS]求一組數的最小公倍數


求兩個數最小公倍數的辦法:兩數相乘除以最大公因數。

方法:

  1. 先求出前兩個數的最小公倍數
  2. 用上一步的最小公倍數和新的數求最小公倍數

 

題目:

找出能被兩個給定參數和它們之間的連續數字整除的最小公倍數。

范圍是兩個數字構成的數組,兩個數字不一定按數字順序排序。

題目來源:freecodecamp

 1 function smallestCommons(arr) {
 2  var min=Math.min(arr[0],arr[1]);//確定大小順序
 3  var max=Math.max(arr[0],arr[1]);
 4  var result=Common(min,min+1);//初始result
 5  min+=2;
 6  for(;min<=max;++min)
 7    
 8  {
 9   result=Common(result,min);
10  }
11   return result;
12 }
13 
14 function Common(m,n)
15 {
16   var arr=[],i;
17   var r=m*n;
18   if(m%n==0) return m;//如果本來就是倍數關系,直接返回大數
19   for(i=2;i<=m;++i)
20     {
21       if(m%i==0) arr.push(i);//求大數的所有因數
22     }
23   for(i=n;i>=2;--i)//從最大因數向下檢索是否存在另一個數的因數
24     {
25       if(n%i==0&&arr.indexOf(i)!=-1) 
26          return m*n/i;//存在直接返回兩數之積除以最大公因數
27         
28         
29     }
30   
31   return r;//若兩數相質,直接返回兩數乘積
32 
33 }
34 
35 smallestCommons([1,13]);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM