19 lines
409 B
JavaScript
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);
|
|
|
|
})();
|