josefinakey,
Los algoritmos de cálculo de MCD requieren que a sea mayor que b. Lo menciono porque has intentado en tu código original comprobar que "a" no sea cero, pero el algoritmo no funciona si a < b.
El enunciado que pusiste para el algoritmo de euclides es recursivo. Traducido lo más exactamente posible a Python, sería:
Código Python:
Ver originaldef mcd(a, b):
if b == 0:
return a
else:
c = a % b
return mcd(b,c) # "sustituir a por b y b por c y repetir el proceso"
Lo cual, si eliminamos pasos superfluos, es exactamente lo que te escribió
razpeitia antes.
A propósito, me gusta esta forma del método recursivo (aunque prefiero el método iterativo):
Código Python:
Ver originaldef mcd(a, b):
return a if b == 0 else mcd(b, a%b)
Saludos.