FCC-Smallest Common Multiple

找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。
范围是两个数字构成的数组,两个数字不一定按数字顺序排序。
例如对 1 和 3 —— 找出能被 1 和 3 和它们之间所有数字整除的最小公倍数。

求最小公倍数有质因数分解法和辗转相除法,对比采取辗转相除法,需要用到递归。
a与b的最小公倍数=a*b/a与b的最大质因数,从最小值开始两个数求最小公倍数,得出的公倍数与下一个数求公倍数,直至最后一个数。

function smallestCommons(arr) {
  arr=arr.sort(function(a,b){return a>b;});
function gdc(a,b){
  if(a%b===0){return b;}
  else{return gdc(b,a%b);}
}
  var val =arr[0];
  for(var i=arr[0]+1;i<=arr[1];i++){
    val =val*i/gdc(val,i);
  }
  return val;
}
smallestCommons([13,5]);

你可能感兴趣的:(FCC-Smallest Common Multiple)