• Matéria: Informática
  • Autor: pedrinhob14
  • Perguntado 7 anos atrás

O máximo divisor comum, ou MDC, entre dois ou mais números inteiros é o maior número inteiro que é fator de tais números. Por exemplo, o MDC de 30 e 12 é 6, pois 30 = 2 x 3 x 5 e 12 = 3 x 2 x 2, nesse caso, note que tanto 30 quanto 12 possuem 6 = 3 x 2 em sua fatoração.
Uma observação interessante é que é possível encontrar o MDC de dois números A e B utilizando a seguinte relação recursiva para o caso em que A e B são maiores ou iguais a zero:
MDC de A e B, quando B = 0 ou quando A = B, é A
4
MDC de A e B, quando A > B, é o MDC de A – B e B
MDC de A e B, quando A < B, é o MDC de A e B – A
Faça um programa que dada uma sequência de pares de valores inteiros A e B maiores ou iguais a zero escreva na saída padrão o MDC de cada par.
Seu programa deve conter uma função recursiva com o seguinte protótipo:
def mdc(a, b):
Entrada
A entrada é composta por várias linhas, cada uma contando um par de valores inteiros não negativos, A e B, separados por um espaço em branco. A última linha contém o par de valores “-1 -1”, que não deve ser processado.
Saída
Uma linha deve ser emitida na saída padrão para cada par de valores dados como entrada. Essa linha deve conter o MDC do respectivo par de valores.

Anexos:

Respostas

respondido por: moisescunharemo2
2

def mdc(a, b):

   if b == 0:

       return a

   else:

       print(a%b)

       return mdc(b, a%b)

l = sorted(list(map(int, input().split())))

while l[0] != -1 and l[1] != -1:

   print(mdc(l[0], l[1]))

   l = sorted(list(map(int, input().split())))

Perguntas similares