RosettaCodeData/Task/Least-common-multiple/JavaScript/least-common-multiple-2.js

19 lines
409 B
JavaScript

(() => {
'use strict';
// gcd :: Integral a => a -> a -> a
let gcd = (x, y) => {
let _gcd = (a, b) => (b === 0 ? a : _gcd(b, a % b)),
abs = Math.abs;
return _gcd(abs(x), abs(y));
}
// lcm :: Integral a => a -> a -> a
let lcm = (x, y) =>
x === 0 || y === 0 ? 0 : Math.abs(Math.floor(x / gcd(x, y)) * y);
// TEST
return lcm(12, 18);
})();