Files
2022-03-21 17:55:58 +01:00

1.8 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
ae9defd7acaf69703ab432ea Mínimo común múltiplo 5 16075 smallest-common-multiple

--description--

Encuentra el múltiplo común más pequeño de los parámetros proporcionados que pueden dividirse equitativamente por ambos, así como por todos los números consecutivos del rango entre estos parámetros.

El rango será un arreglo de dos números que no necesariamente estarán en orden numérico.

Por ejemplo, si se dan 1 y 3, encuentra el múltiplo común más pequeño de 1 y 3 que también es dividido por todos los números entre 1 y 3. La respuesta sería 6.

--hints--

smallestCommons([1, 5]) debe devolver un número.

assert.deepEqual(typeof smallestCommons([1, 5]), 'number');

smallestCommons([1, 5]) debe devolver 60.

assert.deepEqual(smallestCommons([1, 5]), 60);

smallestCommons([5, 1]) debe devolver 60.

assert.deepEqual(smallestCommons([5, 1]), 60);

smallestCommons([2, 10]) debe devolver 2520.

assert.deepEqual(smallestCommons([2, 10]), 2520);

smallestCommons([1, 13]) debe devolver 360360.

assert.deepEqual(smallestCommons([1, 13]), 360360);

smallestCommons([23, 18]) debe devolver 6056820.

assert.deepEqual(smallestCommons([23, 18]), 6056820);

--seed--

--seed-contents--

function smallestCommons(arr) {
  return arr;
}

smallestCommons([1,5]);

--solutions--

function gcd(a, b) {
    while (b !== 0) {
        a = [b, b = a % b][0];
    }
    return a;
}

function lcm(a, b) {
    return (a * b) / gcd(a, b);
}

function smallestCommons(arr) {
  arr.sort(function(a,b) {return a-b;});
  var rng = [];
  for (var i = arr[0]; i <= arr[1]; i++) {
    rng.push(i);
  }
  return rng.reduce(lcm);
}