3
respostas

Cálculo do MDC com algoritmo de Euclides: meu algoritmo está parando antes da hora.

Dados dois inteiros positivos calcular o máximo divisor comum entre eles usando o algoritmo de Euclides:

Meu programa:

def MDC(m,n):
    m,n = max(m,n), min(m,n)
    #print(m,n)# m é sempre o maior valor

    while m % n != 0:

        n = m %n
        m = n

    return n


print(MDC(1800,1050)) # é 150 eu achei 750...

Não sei onde estou errando. No MDC entre 1800 e 1050, por exemplo, meu código retorna 750 ao invés de 150, ou seja, ele parou antes da hora...

3 respostas

eu fiz assim e deu certo:


def euclides_mdc(dividendo, divisor): #maximo divisor comum pelo metodo de euclides
    while divisor != 0:
        temp = divisor
        divisor = dividendo % divisor
        dividendo = temp    
    return dividendo
print (euclides_mdc(1800, 1050))

@Thiago Augusto da Silva: Consegue identificar o erro na minha solução?

Alguém consegue identificar o erro na minha solução?