Suma de múltiplos
- O(n) · Media
- Plan completo
- Python
- JavaScript
- ciclos
- listas
- división
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):
passJavaScript
function sumaMultiplos(factores, tope) {
}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.