Já tratei da decomposição de um número natural em fatores primos. Isso certamente é suficiente para obter o mdc entre dois ou vários números naturais. No entanto, para obter o mdc entre dois números naturais muito grandes isso fica complicado porque a decomposição pode não ser imediata.

O método a seguir é baseado no livro sétimo dos Elementos de Euclides. Apesar de existirem evidências históricas que este método seja anterior a este livro... O Algoritmo de Euclides para a obtenção do máximo divisor comum entre dois números naturais é um processo bem simples. Não desista ao ler a explicação pelo roteiro, mas acompanhe o roteiro juntamente com os exemplos numéricos que virão a seguir - vai ficar bem mais fácil.

Roteiro

Obtendo o mdc entre dois números naturais `X` e `Y` onde `X > Y`.

1) Divida `X` por `Y` e obtenha o resto `R_1`. Se `R_1` for zero, o mdc entre `X` e `Y` é `Y`.

2) Se `R_1` não for zero, divida `Y` por `R_1` e obtenha o resto `R_2`. Se `R_2` for zero, o mdc entre `X` e `Y` é `R_1`.

3) Se `R_2` não for zero, divida `R_1` por `R_2` e obtenha o resto `R_3`. Se `R_3` for zero, o mdc entre `X` e `Y` é `R_2`.

...

Se `R_n` não for zero, divida `R_{n-1}` por `R_n` e obtenha o resto `R_{n+1}`. Se `R_{n+1}` for zero, o mdc entre `X` e `Y` é `R_n`.

Calcule o MDC

Resolver Equação Diofantina `ax + by = c`

Uma equação diofantina é uma equação linear da forma `ax + by = c`, onde `a`, `b` e `c` são inteiros, e buscamos soluções inteiras para `x` e `y`. Usamos o Algoritmo de Euclides Estendido para encontrar `x_0` e `y_0` tais que `ax_0 + by_0 = \text{mdc}(a,b)`. A equação tem solução se `c` for divisível por `\text{mdc}(a,b)`. As soluções gerais são:

`x = x_0 * (\frac{c}{\text{mdc}(a,b)} + (\frac{b}{\text{mdc}(a,b)} ) * k`
`y = y_0 * (\frac{c}{\text{mdc}(a,b)}) - (\frac{a}{\text{mdc}(a,b)}) * k`

onde `k` é qualquer inteiro.

1

Exemplo 1


Obter, pelo Algoritmo de Euclides, o mdc entre 10 e 15.


Resolução

Dividimos 15 por 10 (porque 15 é maior que 10).

15 10
5 1

Como o resto é 5 (não vale zero), devemos dividir o divisor 10 por 5:

10 5
0 2

O resto é zero, portanto o mdc entre 15 e 10 é 5 (o divisor da divisão cujo resto é zero).

→ Confira com uma calculadora de mmc ou de mdc entre dois números naturais clique aqui

Como o Algoritmo de Euclides Resolve Equações Diofantinas

Uma equação diofantina linear, como `ax + by = c`, onde `a`, `b` e `c` são inteiros, busca soluções inteiras para `x` e `y`. O Algoritmo de Euclides, especialmente em sua forma estendida, é uma ferramenta poderosa para resolver esse tipo de equação. Abaixo, explicamos passo a passo como ele funciona:

  1. Calcular o MDC com o Algoritmo de Euclides
    O primeiro passo é encontrar o máximo divisor comum (MDC) de `a` e `b`, denotado `\text{mdc}(a, b)`. O Algoritmo de Euclides faz isso por divisões sucessivas. Por exemplo, para `a = 6` e `b = 8`:
    • `6 = 0 * 8 + 6` (resto 6)
    • `8 = 1 * 6 + 2` (resto 2)
    • `6 = 3 * 2 + 0` (resto 0)
    O último resto não nulo é o MDC: `\text{mdc}(6, 8) = 2`.

  2. Verificar a Existência de Solução
    A equação `ax + by = c` só tem solução inteira se `c` for divisível por `\text{mdc}(a, b)`. Isso ocorre porque qualquer combinação linear de `a` e `b` (ou seja, `ax + by`) é sempre um múltiplo do MDC. Para `6x + 8y = 22`, como `22 / 2 = 11` (inteiro), há solução.

  3. Usar o Algoritmo Estendido para Encontrar `x_0` e `y_0`
    O Algoritmo de Euclides Estendido vai além do MDC: ele encontra inteiros `x_0` e `y_0` tais que `ax_0 + by_0 = \text{mdc}(a, b)`. Voltamos pelas divisões:
    • De `8 = 1 * 6 + 2`, temos `2 = 8 - 1 * 6`.
    • Reescrevendo: `6 * (-1) + 8 * 1 = 2`.
    Assim, para `6x + 8y = 2`, uma solução é `x_0 = -1`, `y_0 = 1`.

  4. Ajustar para o Valor de `c`
    Com `x_0` e `y_0` encontrados, ajustamos para `c`. Se `c = 22` e `\text{mdc}(6, 8) = 2`, calculamos o fator `c / \text{mdc}(a, b) = 22 / 2 = 11`. Então:
    • `x = x_0 * (\frac{c}{\text{mdc}(a, b)}) = -1 * 11 = -11`
    • `y = y_0 * (\frac{c}{\text{mdc}(a, b)}) = 1 * 11 = 11`
    Verificamos: `6 * (-11) + 8 * 11 = -66 + 88 = 22`. A solução particular é `x = -11`, `y = 11`.

  5. Determinar as Soluções Gerais
    Todas as soluções da equação são dadas por:
    `x = x_0 * (\frac{c}{\text{mdc}(a, b)}) + (\frac{b}{\text{mdc}(a, b)}) * k`
    `y = y_0 * (\frac{c}{\text{mdc}(a, b)}) - (\frac{a}{\text{mdc}(a, b)}) * k`
    onde `k` é qualquer inteiro. Para o exemplo:
    • `x = -11 + (8 / 2) * k = -11 + 4k`
    • `y = 11 - (6 / 2) * k = 11 - 3k`
    Testando `k = 1`: `x = -11 + 4 = -7`, `y = 11 - 3 = 8`. Verifica: `6 * (-7) + 8 * 8 = -42 + 64 = 22`.

Portanto, o Algoritmo de Euclides Estendido não só calcula o MDC, mas também fornece uma combinação linear de `a` e `b` que pode ser ajustada para resolver `ax + by = c`, desde que `c` seja compatível com o MDC. Esse processo é essencial em teoria dos números e tem aplicações em criptografia, entre outros campos.

O Algoritmo de Euclides pode requerer muitas divisões sucessivas até que se chegue ao resto zero (sempre se chegará). Por conta disso, é melhor usar uma chave que aproveita melhor os resultados anteriores e deixa espaço para os próximos, caso sejam necessários.

Monte uma grade com, pelo menos, 3 colunas e exatamente 3 linhas (deixe espaço à direita):

       
       
       

Na grade, insira o 15 e o 10 (vou manter os números do exemplo) assim:

       
15 10    
       

Sempre na primeira linha, sobre o último divisor usado, escreva o quociente da divisão atual. Na divisão de 15 por 10 o quociente é 1. Registre assim:

  1    
15 10    
       

O resto da divisão atual é registrado abaixo do dividendo da divisão atual. Na divisão de 15 por 10 o resto é 5.

  1    
15 10    
5      

Como 5 não é zero, compiamos o 5 ao lado do 10, na próxima casa. Repete-se todo o processo anterior, pensando que a divisão de agora é de 10 por 5.

  1    
15 10 5  
5      

Na divisão de 10 por 5 o quociente é 2. Registre assim:

  1 2  
15 10 5  
5      

Na divisão de 10 por 5 o resto é 0.

  1 2  
15 10 5  
5 0    

Como o resto é zero, o mdc entre 15 e 10 é o número 5.

2

Exemplo 2


Obter, pelo Algoritmo de Euclides, o mdc entre 1128 e 336.


Resolução


Após as divisões sucessivas e os registros dos resultados nos locais apropriados, chega-se em:

3 2 1 4
1128 336 120 96 24
120 96 24 0

O mdc entre 1128 e 336 é 24.

→ Confira com uma calculadora de mmc ou de mdc entre dois números naturais clique aqui