2.5 KiB
title | localeTitle |
---|---|
Greatest Common Divisor Euclidean | Maior Divisor Comum Euclidiano |
Maior Divisor Comum Euclidiano
Para este tópico, você deve saber sobre o Greatest Common Divisor (GCD) e a operação MOD primeiro.
Maior Divisor Comum (GCD)
O GCD de dois ou mais inteiros é o maior número inteiro que divide cada um dos números inteiros, de modo que o restante seja zero.
Exemplo-
GCD de 20, 30 = 10 (10 é o maior número que divide 20 e 30 com o restante como 0)
GCD de 42, 120, 285 = 3 (3 é o maior número que divide 42, 120 e 285 com o restante como 0)
Operação "mod"
A operação mod fornece o restante quando dois inteiros positivos são divididos. Nós escrevemos como segue-
A mod B = R
Isto significa que dividir A por B lhe dá o resto R, isto é diferente de sua operação de divisão que lhe dá o quociente.
Exemplo-
7 mod 2 = 1 (dividindo 7 por 2 dá o resto 1)
42 mod 7 = 0 (dividindo 42 por 7 dá o resto 0)
Com os dois conceitos acima compreendidos, você compreenderá facilmente o Algoritmo Euclidiano.
Algoritmo Euclidiano para o Maior Divisor Comum (GCD)
O Algoritmo Euclidiano encontra o GCD de 2 números.
Você entenderá melhor esse Algoritmo ao vê-lo em ação. Supondo que você queira calcular o GCD de 1220 e 516, vamos aplicar o Algoritmo Euclidiano -
Supondo que você queira calcular o GCD de 1220 e 516, vamos aplicar o Algoritmo Euclidiano -
Pseudocódigo do Algoritmo
Etapa 1: Seja a, b
os dois números
Etapa 2: a mod b = R
Etapa 3: deixe a = b
e b = R
Passo 4: Repita os passos 2 e 3 até que o a mod b
seja maior que 0
Etapa 5: GCD = b
Etapa 6: finalizar
Código JavaScript para executar o GCD-
function gcd(a, b) {
var R;
while ((a % b) > 0) {
R = a % b;
a = b;
b = R;
}
return b;
}
Código Javascript para executar o GCD usando Recursion-
function gcd(a, b) {
if (b == 0)
return a;
else
return gcd(b, (a % b));
}
Você também pode usar o Algoritmo Euclidiano para encontrar o GCD de mais de dois números. Como o GCD é associativo, a seguinte operação é válida - GCD(a,b,c) == GCD(GCD(a,b), c)
Calcule o GCD dos dois primeiros números e depois encontre o GCD do resultado e o próximo número. Exemplo - GCD(203,91,77) == GCD(GCD(203,91),77) == GCD(7, 77) == 7
Você pode encontrar GCD de n
números da mesma maneira.