FC ConcursosFC Concursos

Questão FC331181

Analise o código Python 2.7 a seguir. def xpto (n1, n2): while n1 != n2: if (n1 < n2): n2 = n2 - n1 else: n1 = n1 - n2 return n1 print xpto(50,5) O valor exibido pelo comando print

Linguagens de Programação

FGV · 2021

Analise o código Python 2.7 a seguir.


def xpto (n1, n2):
     while n1 != n2:
           if (n1 < n2):
               n2 = n2 - n1
           else:
                 n1 = n1 - n2
      return n1
print xpto(50,5)


O valor exibido pelo comando print é:

  1. 0
  2. 1
  3. 5
  4. 10
  5. 50
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A função xpto recebe n1=50 e n2=5 e entra no laço while que executa enquanto n1 != n2.
Dentro do laço há um if: como 50 > 5, a condição n1 < n2 é falsa e executa-se n1 = n1 - n2 repetidamente.

Isso gera a sequência: 50 → 45 → 40 → 35 → 30 → 25 → 20 → 15 → 10 → 5. Quando n1 atinge 5, passa a valer igual a n2, a condição do while deixa de ser verdadeira e o laço termina.

Em seguida a função faz o retorno de n1, que agora vale 5. Observação: esse procedimento é a versão por subtração do algoritmo de Euclides, portanto o valor retornado é o mdc(50,5)=\(5\).

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo