首页 > 代码库 > 求区间最大公倍数

求区间最大公倍数

问题:求区间[a, b]内所有整数的最大公倍数

方法:利用公式:lcm(a, b) = |a*b|/gcd(a, b)

代码如下:

 1 function Scm(a, b) {
 2   function gcd(a, b) {
 3     return b === 0 ? a : gcd(b, a%b);  
 4   }
 5   function lcm(a, b) {
 6     return a > b ? (a * b / gcd(a, b)) : (a * b / gcd(b,a));
 7   }
 8 
 9   var scm = 1;
10   for(var i = a; i <= b; i++) {
11     scm = lcm(scm, i);
12   }
13 
14   return scm;
15 }

 

求区间最大公倍数