The problem today is about calculating the least common multiple of a set of numbers. In mathematics, the least common multiple of two positive integers `a` and `b`, denoted by `LCM(a,b)`, is the smallest natural number that is divisible by both `a` and `b`. But let’s start with the definition of the problem:

### The Problem: Least Common Multiple

Write a function that calculates the least common multiple of its arguments; each argument is assumed to be a non-negative integer. In the case that there are no arguments (or the provided array in compiled languages is empty), return `1`. If any argument is `0`, return `0`.

### The Solution

To solve the problem, I can follow the instructions on Wikipedia:

It is essentially a matter of using the greatest common divisor. But how do you calculate the greatest common divisor? I talked about it a few days ago in another post:

``````const gcd = (x, y) => (y === 0 ? x : gcd(y, x % y));
``````

Therefore, the problem of calculating the least common multiple in JavaScript can be solved in just two lines:

``````const gcd = (x, y) => (y === 0 ? x : gcd(y, x % y));

const lcm = (...n) => n.reduce((x, y) => (x * y) / gcd(x, y));
``````

Tags:

Categorie:

Aggiornato: