El máximo común divisor (MCD) de ayb es el número más grande que los divide a ambos sin resto.
Una forma de encontrar el MCD de dos números es el algoritmo de Euclides, que se basa en la observación de que si res el resto cuando ase divide por b, entonces gcd(a, b) = gcd(b, r). Como caso base, podemos usar gcd(a, 0) = a.
Escribir una llamada mcd función que toma parámetros ay bdevuelve su máximo común divisor.

Respuestas:
Está en la biblioteca estándar .
Código fuente del
inspectmódulo en Python 2.7:A partir de Python 3.5,
gcdestá en elmathmódulo ; el quefractionsestá en está obsoleto. Además,inspect.getsourceya no devuelve código fuente explicativo para ninguno de los métodos.fuente
fractions.gcd(1, -1)es ,-1pero es1 > -1decir,1divide a ambos1y-1sin resto y es más grande que-1, consulte bugs.python.org/issue22477gcd(1, -1) == -1que me parece totalmente legítimo.fractions.gcd()como está (funciona en elementos de anillo euclidianos).math.gcd(1, -1)regresa1.Los algoritmos con mn pueden durar mucho.
Este funciona mucho mejor:
fuente
xantes de ser asignada. Que ha asignadoyaxla primera , por lo que ahorayse va a establecer en0(comoy % ysiempre es 0).Esta versión de código utiliza el algoritmo de Euclid para encontrar GCD.
fuente
def gcd(a, b): if b == 0: return a return gcd(b, a % b)fuente
fuente
Solución muy concisa usando recursividad:
fuente
usando recursividad ,
usando mientras ,
usando lambda,
fuente
Un enfoque diferente basado en el algoritmo de Euclid.
fuente
fuente
Creo que otra forma es usar la recursividad. Aquí está mi código:
fuente
gcd(10,5)...en python con recursividad:
fuente
fuente
Para
a>b:Para cualquiera
a>boa<b:fuente
b, a = a, b. intente leer más sobre el idiomaTuve que hacer algo como esto para una tarea con bucles while. No es la forma más eficiente, pero si no desea utilizar una función, esto funciona:
fuente
fuente
Este código calcula el mcd de más de dos números dependiendo de la elección dada por # el usuario, aquí el usuario da el número
fuente
El intercambio de valor no funcionó bien para mí. Así que configuré una situación similar a un espejo para los números que se ingresan en a <b O a> b:
fuente
mayor_devisor_común (A)
fuente
fuente
breakintenta lograr esa declaración.Aquí está la solución que implementa el concepto de
Iteration:fuente