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.
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í:
def maximo_comun_divisor(a, b):
temporal = 0
while b != 0:
temporal = b
b = a % b
a = temporal
return a
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
.
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.
def maximo_comun_divisor_recursivo(a, b):
if b == 0:
return a
return maximo_comun_divisor_recursivo(b, a % b)
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
.
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:
"""
https://parzibyte.me/blog
"""
def maximo_comun_divisor(a, b):
temporal = 0
while b != 0:
temporal = b
b = a % b
a = temporal
return a
def maximo_comun_divisor_recursivo(a, b):
if b == 0:
return a
return maximo_comun_divisor_recursivo(b, a % b)
a = 20
b = 6
resultado = maximo_comun_divisor(a, b)
resultado_recursivo = maximo_comun_divisor_recursivo(a, b)
print(
f"El Máximo común divisor de {a} y {b} es {resultado}. De manera recursiva, es {resultado_recursivo}")
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 explorar más sobre Python en mi blog.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.