Saltar al contenido

El divisor que le sirve a todos

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):
    pass

JavaScript

function divisorComun(numeros) {
}
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 →