Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como implementar um algoritmo de cálculo de MDC recursivo em Python?

A versão não-recursiva está abaixo:

def mdc(a,b):
    while b !=0:
        resto = a % b
        a = b
        b = resto

    return a

print(mdc(50,2))
2 respostas
solução!

Oi, Edson! Esses algoritmos são bem legais ;-). A ideia da recursividade é que uma função chame ela mesma. Se tirarmos o loop while, podemos fazer isso facilmente, olha:

def mdc(a, b):
    if b == 0:
        return a
    resto = a % b
    a = b
    b = resto
    return mdc(a, b)

Deixei com os passos parecidos com o seu pra ficar mais fácil de entender. Se quiser, dá pra simplificar até esse ponto:

def mdc(a, b):
    if b == 0:
        return a
    return mdc(b, a%b)

Se ficou alguma dúvida, pode falar, Edson! Abraços!

@Yan Orestes: Obrigado! A ideia é trazer para cá problemas interessantes que eu estou tentando resolver de forma a enriquecer o fórum! Muito obrigado por sua colaboração. Suas respostas são excelentes!