返回两个或两个以上数字的最小公倍数。
使用最大公约数(GCD)公式和 lcm(x,y) = x * y / gcd(x,y)
来确定最小公倍数。 GCD公式使用递归。
const lcm = (...arr) => { const gcd = (x, y) => (!y ? x : gcd(y, x % y)); const _lcm = (x, y) => x * y / gcd(x, y); return [...arr].reduce((a, b) => _lcm(a, b)); };
lcm(12, 7); // 84 lcm(...[1, 3, 4, 5]); // 60