Máximo Divisor Comum (MDC) em Java e JavaScript


O Máximo Divisor Comum (MDC) é um conceito matemático fundamental que descreve o maior número inteiro que divide dois números sem deixar resto. Este conceito é essencial em várias áreas da matemática, particularmente em algoritmos, teoria dos números e computação.

O MDC de dois números inteiros é o maior número que pode dividir ambos sem deixar um resto. É frequentemente utilizado em simplificações de frações e em problemas que envolvem divisões igualmente distribuídas.

Por exemplo, o MDC de 8 e 12 é 4, já que 4 é o maior número que divide tanto 8 quanto 12 sem deixar resto. Existem várias maneiras de calcular o MDC, incluindo o algoritmo de Euclides, que é uma abordagem comum e eficiente para encontrar o MDC de dois números.

Implementação do MDC em Java

public class MDC {
public static int calcularMDC(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}

public static void main(String[] args) {
int num1 = 8;
int num2 = 12;
int resultado = calcularMDC(num1, num2);
System.out.println("MDC de " + num1 + " e " + num2 + ": " + resultado);
}
}

Implementação do MDC em JavaScript

function calcularMDC(a, b) {
while (b !== 0) {
let temp = b;
b = a % b;
a = temp;
}
return a;
}

let numero1 = 8;
let numero2 = 12;
let resultado = calcularMDC(numero1, numero2);
console.log(`MDC de ${numero1} e ${numero2}: ${resultado}`);

Ambos os exemplos de código em Java e JavaScript demonstram a implementação do algoritmo de Euclides para calcular o MDC de dois números. Essas implementações são eficientes e podem ser utilizadas para encontrar o MDC em diferentes contextos de programação.

Prova discursiva da [FGV] Câmara dos Deputados 2023

Com o que estudamos, vamos responder uma prova discursiva cobrada para o concurso da Câmara dos Deputados, pela banca FGV.

Usaremos o código Java sobre MDC como base para responder a prova:

public class MDCFGV {
public static int MDCdue(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}

public static int calcularMDCLista(int[] numeros){
if(numeros.length < 2)
return 0;

int resultado = numeros[0];

for(int i = 1; i < numeros.length; i++)
resultado = MDCdue(resultado, numeros[i]);

return resultado;
}

public static void main(String[] args) {
System.out.println("MDC(2) = " + calcularMDCLista(new int[]{2}));
System.out.println("MDC(2, 3, 4, 5) = " + calcularMDCLista(new int[]{2, 3, 4, 5}));
System.out.println("MDC(1024, 4, 24, 12) = " + calcularMDCLista(new int[]{1024, 4, 24, 12}));
System.out.println("MDC(49, 14, 77, 63) = " + calcularMDCLista(new int[]{49, 14, 77, 63}));
System.out.println("MDC(100, 20) = " + calcularMDCLista(new int[]{100, 20}));
}
}

No código, temos mais um método para receber um array de números. Caso o array tenha apenas um elemento, é retornado o valor 0. Caso o array tenha mais de um elemento, a variável resultado recebe o primeiro elemento do array e depois é atualizada com o MDC do valor do resultado com a posição representada pela variável i da estrutura de repetição for. A variável i começa no valor 1 e vai até valor do tamanho do array menos uma unidade.

O resultado da execução do código é:

MDC(2) = 0
MDC(2, 3, 4, 5) = 1
MDC(1024, 4, 24, 12) = 4
MDC(49, 14, 77, 63) = 7
MDC(100, 20) = 20

Espero que gostem do conteúdo e desejo que se preparem conosco durante essa jornada na conquista de uma tão sonhada vaguinha em um concurso público.

É isso aí, galera.
[]’s e até a próxima.
——————————————
Rogerão Araújo
@profRogeraoAraujo

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.