Questão
2023
FGV
Câmara dos Deputados
Analista Legislativo Informática Legislativa (CD)
Maximo-Divisor-Comum3571959d59b
Discursiva
O Máximo Divisor Comum (MDC) de dois ou mais números inteiros, positivos e diferentes de zero é o maior (máximo) número inteiro que divide simultaneamente esses dois ou mais números. Os exemplos a seguir ilustram o cálculo do MDC.



Item 1

Descreva em português, sucinta e precisamente, o passo a passo de um algoritmo eficiente que calcula o MDC de dois números inteiros, positivos e diferentes de zero.

Observações sobre o texto apresentado:

a) deve respeitar rigorosamente a especificação;

b) deve ser claro e organizado;

c) não deve conter comentários e/ou justificativas;

d) não deve incluir trechos que estejam fora do escopo da solução.

Item 2

Codifique um(a) método/função intitulado(a) MDCmulti que calcule e retorne o MDC de um conjunto de números, ou seja, o maior (máximo) número que divide simultaneamente todos os números do conjunto fornecido. A função, ou método, recebe apenas um parâmetro, na forma de um array, contendo dois ou mais números inteiros, positivos e diferentes de zero. Esse parâmetro não deve ser validado, pois supostamente estará sempre correto. Uma dica útil: MDC(a,b,c) = MDC(MDC(a,b), c).

O código deve ser integralmente codificado numa única linguagem, que pode ser Java ou JavaScript. Nenhuma outra será aceita.

• Caso a linguagem escolhida for JavaScript, basta codificar uma função (function); eventuais funções auxiliares devem adotar o mesmo padrão;

• Caso a linguagem escolhida for Java, basta codificar um método (static), não sendo necessário apresentar as demais declarações que constituem a classe; eventuais métodos auxiliares devem adotar o mesmo padrão.

• Para facilitar a codificação, é permitido supor, e utilizar opcionalmente, um(a) método/função preexistente, intitulado(a) MDCdue, que retorna o MDC de dois números inteiros, a e b, positivos e diferentes de zero, recebidos como parâmetros de acordo com os modelos a seguir. O método/ função MDCdue pode ser invocado(a) no código apresentado sem necessidade de codificar sua implementação, e o resultado retornado é suposto correto. Nenhum(a) outro(a) método/função adicional, oriundos de bibliotecas, módulos ou frameworks, e afins, pode ser empregado(a) no código apresentado.



Observações sobre o código apresentado:

a) deve manter a assinatura especificada e respeitar rigorosamente as especificações;

b) deve respeitar a sintaxe da linguagem de programação escolhida;

c) não deve conter comentários ou incluir trechos fora do código requisitado, pois serão considerados erros de sintaxe.