Máximo común divisor en Python

Python – Máximo común divisor

Hoy vamos a ver cómo obtener el máximo común divisor de dos números usando el lenguaje de programación Python.

Usaremos Python para escribir dos funciones que nos van a ayudar a calcular el MCD de dos números, una recursiva y otra usando el ciclo while.

Recuerda que el máximo común divisor de dos números es el entero máximo que puede dividir a dos números sin dejar residuo.

Por ejemplo, el máximo común divisor de 6 y 20 es 2, ya que no hay número mayor que pueda dividir a ambos números (ya que el 3 puede dividir al 6 pero no al 20).

Veamos cómo resolver este ejercicio de programación con Python a través del algoritmo de Euclides.

Máximo común divisor con ciclo while

Veamos el primer enfoque, y es calcular el mcd de dos enteros usando el ciclo while. Dentro del ciclo simplemente vamos intercambiando variables y asignando a b el resultado de obtener el residuo de dividir a entre b.

El ciclo termina cuando b sea cero. En código queda así:

Fíjate en que estamos usando una variable temporal para ir guardando ahí el valor de b, ya que luego vamos a intercambiarlo con a.

Usando recursión

Si queremos ver el enfoque recursivo para el MCD usando Python podemos lograrlo igualmente con funciones. El código queda incluso más simplificado, pero la condición sigue siendo la misma: se va a detener cuando b sea 0.

La recursividad ocurre en la línea 4, pues invocamos a la función dentro de sí misma pero ahora pasamos a b como a (intercambiando la variable) y pasamos a b como el residuo de dividir a entre b.

Poniendo todo junto

Máximo común divisor en Python
Máximo común divisor en Python

Hasta ahora te he mostrado estos métodos en Python. Puedes usar el que más te convenga. Para usarlos y probarlos podemos ver el siguiente código completo:

El modo de uso de las funciones se encuentra en las líneas 21 hasta 26. Obviamente estos valores pueden venir de cualquier lugar, yo los he colocado en el código por simplicidad.

Te dejo con un enlace para ejecutar el código en línea y con éste otro para explorar más sobre Python en mi blog.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario