Least common multiple
Last updated
Was this helpful?
Last updated
Was this helpful?
const primeFactorization = (x) => {
const map = new Map();
let divisor = 2;
while (divisor <= x) {
if (x % divisor === 0) {
map.set(divisor, (map.get(divisor) || 0) + 1);
x /= divisor;
} else {
divisor += 1;
}
}
return map;
};
const leastCommonMultiple = (a, b) => {
const factors = new Map();
primeFactorization(a).forEach((v, key) => factors.set(key, factors.get(key) > v ? factors.get(key) : v));
primeFactorization(b).forEach((v, key) => factors.set(key, factors.get(key) > v ? factors.get(key) : v));
return [...factors.entries()].reduce((acc, cur) => acc * (cur[0] ** cur[1]), 1);
};