Implementar la operación MCD en Python

Vaibhhav Khetarpal 30 enero 2023
  1. Utilizar la recursión para implementar el código del MCD en Python
  2. Utilice un bucle for para implementar el código del mayor divisor común en Python
  3. Utilice el algoritmo euclidiano para implementar el código para el mayor divisor común en Python
  4. Utilice la función math.gcd() para calcular el máximo divisor común en Python
Implementar la operación MCD en Python

El máximo común divisor (MCD), también conocido como el factor común más alto (HCF) de dos valores, es el número más grande que divide ambos números dados. El máximo común divisor también se puede calcular e implementar en Python.

Este tutorial demuestra los diferentes métodos para implementar el código del máximo común divisor en Python.

Utilizar la recursión para implementar el código del MCD en Python

Una función que se llama a sí misma en el bloque de definición de función se conoce como recursividad. La recursividad se puede utilizar para crear una función que calcule el MCD de dos números. Este proceso es muy útil para reducir la longitud del código y resulta útil para minimizar las llamadas a funciones innecesarias.

El siguiente código usa la recursividad para implementar el código del máximo común divisor en Python.

def gcd1(x, y):
    if y == 0:
        return x
    else:
        return gcd1(y, x % y)


x = 72
b = 60

print("The gcd is : ", end="")
print(gcd1(72, 60))

El programa anterior da el siguiente resultado.

Producción :

The gcd is : 12

Utilice un bucle for para implementar el código del mayor divisor común en Python

Un simple bucle for y la instrucción if-else pueden ayudar a lograr la misma tarea que los otros métodos de este artículo.

El siguiente código usa un bucle for para implementar el código del máximo común divisor en Python.

def gcd2(a, b):

    if a > b:
        small = b
    else:
        small = a
    for i in range(1, small + 1):
        if (a % i == 0) and (b % i == 0):
            gcd = i

    return gcd


a = 72
b = 60

print("The gcd is : ", end="")
print(gcd2(72, 60))

El código anterior da el siguiente resultado.

Producción :

The gcd is : 12

Utilice el algoritmo euclidiano para implementar el código para el mayor divisor común en Python

El algoritmo euclidiano es otra técnica que es capaz de calcular rápidamente el máximo común divisor de dos números.

El algoritmo euclidiano se define en base a dos hechos principales.

  • No hay cambio en el GCD si un número menor resta un número mayor. Por lo tanto, eventualmente descubrimos el MCD en la resta continua del valor mayor entre los dos números.
  • Si dividimos el número menor, en lugar de restar aquí, el algoritmo se detiene automáticamente cuando se encuentra el resto 0.

El siguiente programa a continuación usa el algoritmo euclidiano para implementar el código para el máximo común divisor en Python.

def gcd3(p, q):

    while q:
        p, q = q, p % q

    return p


p = 72
q = 60

print("The gcd is : ", end="")
print(gcd3(72, 60))

El código proporciona el siguiente resultado.

Producción :

The gcd is : 12

Utilice la función math.gcd() para calcular el máximo divisor común en Python

Ahora, en lugar de hacer una función definida por el usuario, podemos simplemente usar la función predefinida math.gcd() para calcular el GCD de dos números. El módulo math debe importarse al código Python para poder utilizar la función gcd().

El siguiente código usa la función math.gcd() para calcular el máximo común divisor en Python.

import math

a = math.gcd(72, 60)
print(a)

El programa anterior proporciona el siguiente resultado.

Producción :

12

En Python 3.5 y superior, la función gcd está contenida en el módulo math. En las versiones anteriores de Python, la función gcd estaba contenida en el módulo fractions. Sin embargo, a partir de Python 3.5, ha quedado obsoleto.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Artículo relacionado - Python Number