Generalmente este algoritmo de utiliza para obtener el máximo común divisor de ciertos numeros, que a su vez puede ser parte de la simplificación de fracciones o parte de una sucesión de divisiones continuas, o en un ejercicio para conocer los inversos modulares de ciertos números.
Hay 2 formas de obtener el MCD (máximo común divisor) o GCD (greatest comun divisor):
-> Implementar el algoritmo (programar todos los pasos)
-> Usar la librería incluida en python
Aquí esta el código para la primera opción, es muy básico pero cumple con la finalidad.
def extended_gcd (a, b): x, ant_x = 0, 1 y, ant_y = 1, 0 while b: cociente = a // b a, b = b, a % b x, ant_x = ant_x - cociente*x, x y, ant_y = ant_y - cociente*y, y return (ant_x, ant_y, a) def main(): a = input() b = input() print extended_gcd(a, b) main()
Y una captura de esto corriendo:
Aquí esta la segunda opción, donde solo se importa la librería y se le pasan los dos números de los cuales se quiere conocer el mcd
from fractions import gcd def main(): a = input() b = input() print "gcd(", a,", ", b,") = ", gcd(a, b) main()
Y una captura:
_______________________________________________________________________________
Referencias
Extended_Euclidean_Algorithm
Division_Algorithm
Docs_Python _Library/fractions.gcd()
No hay comentarios:
Publicar un comentario