Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/08/2011, 12:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Calcular el MCD.

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 original
  1. def mcd(a, b):
  2.     if b == 0:
  3.         return a
  4.     else:
  5.         c = a % b
  6.         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 original
  1. def mcd(a, b):
  2.     return a if b == 0 else mcd(b, a%b)

Saludos.