Saltar al contenido

Suma de múltiplos

Enunciado

Escribe una función que reciba dos cosas, en este orden: una lista de factores y un tope. Regresa la suma de los números menores que el tope que son múltiplos de alguno de los factores. El tope no se incluye.

Un número es múltiplo de otro si la división queda exacta: 6 es múltiplo de 3 porque 6 entre 3 da 2 y no sobra nada.

Los números que revisas van del 1 al tope, sin incluir el tope. Con los factores 3 y 5 y el tope 4 revisas el 1, el 2 y el 3: el único múltiplo de alguno de los dos es el 3, así que regresas 3.

Aquí está lo que más se equivoca: un número que es múltiplo de varios factores se suma una sola vez. Con los factores 4 y 6 y el tope 15 los números que cuentan son 4, 6, 8 y 12. El 12 es múltiplo de 4 y también de 6, pero entra una vez: el total es 30, no 42.

Si la lista de factores viene vacía, regresas 0.

Un factor 0 se ignora: no aporta nada a la suma. Sáltalo antes de dividir, porque en Python dividir entre 0 truena.

Ejemplos

  • El ejemplo del enunciado

    [3, 5], 4 → 3

  • Tres y cinco hasta 10

    [3, 5], 10 → 23

  • Ningún múltiplo

    [3, 5], 1 → 0

  • Tres factores

    [7, 13, 17], 20 → 51

  • Sin factores

    [], 10 → 0

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def suma_multiplos(factores, tope):
    pass

JavaScript

function sumaMultiplos(factores, tope) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n)

Ver todos los retos →