El divisor que le sirve a todos
- O(n) · Media
- Plan completo
- Python
- JavaScript
- listas
- ciclos
- operaciones
Enunciado
Un divisor de un número es otro que cabe en él sin que sobre nada: 3 es divisor de 12, porque 12 entre 3 da 4 justo.
Escribe una función que reciba una lista de números y regrese el divisor más grande que les sirve a todos a la vez.
Con 12, 18 y 30 la respuesta es 6: los tres se parten en pedazos de 6 sin que sobre nada, y ningún número más grande lo logra.
Las reglas: los números nunca son negativos. Con un solo número, ese mismo es la respuesta, porque cabe en sí mismo. El 0 se divide entre cualquier número sin que sobre nada, así que no manda: con 0, 9 y 15 la respuesta es 3. Si la lista viene vacía, regresas 0. Y ojo, no siempre es el número más chico: con 8, 24 y 12 la respuesta es 4, no 8.
Hay dos caminos. Uno: probar candidatos de grande a chico hasta que uno divida a todos. Otro: arrastrar el resultado por la lista, porque el divisor común de toda la lista es el divisor común de lo que llevas con el siguiente número.
Ejemplos
Todos pares
[2, 4, 6, 8, 16] → 2
Nada en común
[1, 2, 3] → 1
Doce, dieciocho y treinta
[12, 18, 30] → 6
No es el más chico
[8, 24, 12] → 4
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def divisor_comun(numeros):
passJavaScript
function divisorComun(numeros) {
}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)
- El doblón falsolistas · índices · ciclos
- El estante que se acomodarejillas · textos · índices
- El hechizo del ecotextos · dígitos · ciclos
- El índice arrancadotextos · expresiones regulares · listas
- El inventario al cierrediccionarios · listas · ciclos
- El itinerario del boletodiccionarios · conjuntos · listas