Olá, estou aprendendo python a bem pouco tempo e tive problemas com um exercício. segue abaixo ele:
O maior divisor comum (MDC, ou GCD em inglês) de a e b é o maior número que divide ambos sem sobrar resto.
Um modo de encontrar o MDC de dois números é observar qual é o resto r quando a é dividido por b, verificando que gcd(a, b) = gcd(b, r). Como caso-base, podemos usar gcd(a, 0) = a.
Escreva uma função chamada gcd que receba os parâmetros a e b e devolva o maior divisor comum.
consegui fazer mas toda vez que eu vou exibir o valor de "a" e "b" que eu escolhi me é retornado os novos valores dessas variaveis. segue o código:
#Exercício 6.5
def gdc(a, b):
if a > b:
d = a - b
h = b%d
if h != 0:
gdc(b, d)
elif h == 0:
print("o gdc entre {} e {} dá {} ".format(a, b, d))
else:
print("deu zebra")
gdc(48, 30)
em vez de printar "o gdc entre 48 e 30 dá 6", ele exibe "o gdc entre 18 e 12 dá 6 ", sendo 18 e 12 os últimos 2 números utilizados nessa função. já tentei de varias modos, mas no geral sempre caio nesse erro ou em uma recursividade infinita...
o que quero é que seja exibido o valor inicial da variavel, o a = 48 e b = 30 que foram inseridos para chamar a função.
alguém pode me ajudar a resolver isso de modo que fique semelhante ao que eu estou tentando fazer???
muito obrigada mesmo!!!