Teoria de números/Máximo divisor comum

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar


No capítulo anterior, foi demonstrado o [[../Números primos#Teorema fundamental da aritmética|teorema fundamental da aritmética]]. No entanto, a prova apresentada, utilizou-se de um resultado cuja prova apresentaremos neste capítulo. Para tanto, será preciso definir o conceito de máximo divisor comum entre dois números inteiros.

Este é o conteúdo da próxima seção.

1 Divisores comuns

Definição

Um divisor comum de a e b é um número inteiro que é divisor tanto de a quanto de b.

1.1 Exemplos

1.1.1 Quem são os divisores comuns de a e b?

O conjunto formado pelos divisores comuns de a e b será denotado por D(a,b).

No primeiro capítulo, [[../Divisibilidade#Propriedades da divisibilidade|mostrou-se]] que o número 1 é divisor de qualquer número inteiro. Em particular, se forem escolhidos números a e b, certamente 1 será um divisor comum de ambos.

Logo, o conjunto D(a,b) é não vazio, pois 1D(a,b).

1.1.2 O maior dos divisores comuns

Se a0 e d for um divisor comum de a e de b, então |d||a|. Logo o conjunto D(a,b) é limitado superiormente e deve ter um elemento máximo, ou seja, existe um divisor comum de a e b maior que todos os demais. Analogamente, para b0, o conjunto D(a,b) também tem um elemento máximo. O único caso que D(a,b) não é limitado superiormente é o conjunto D(0,0), já que zero é múltiplo de qualquer inteiro não-nulo.

Isso motiva a próxima definição.

1.2 Definição de MDC

Definição

O máximo divisor comum (abreviadamente MDC) entre dois números inteiros a e b, em que pelo menos um deles não é zero, é o maior elemento do conjunto D(a,b), e será denotado por mdc(a,b), ou simplesmente (a,b).

Wikipedia
Wikipedia
A Wikipédia tem mais sobre este assunto:
Números primos entre si

Quando o conjunto D(a,b) possui apenas um elemento positivo, ou seja, quando (a,b)=1, os números a e b são ditos primos entre si, relativamente primos ou simplesmente co-primos.


Este livro tem a seguinte tarefa pendente: Unificar a notação utilizada ao longo do livro para denotar o MDC. Pode ser mais adequado utilizar sempre mdc(a,b), em vez de (a,b), para evitar confusões. Em caso de dúvida, pode-se discutir o assunto.

1.2.1 Exemplo

Qual é o máximo divisor comum entre 12 e 15?

Considerando que os divisores de 12 são os elementos do conjunto D(12)={±1,±2,±3,±4,±6,±12} e que os divisores de 15 formam o conjunto D(15)={±1,±3,±5,±15}, tem-se que D(12,15)={±1,±3}, cujo maior elemento é 3. Portanto, mdc(12,15)=3.

Embora ainda não tenha sido explicado como encontrar o máximo divisor comum de dois números inteiros (isso será feito mais adiante), mostra-se que ele é um dos elementos do conjunto {ax+by:x,y}. Este resultado é um teorema surpreendente, pois relaciona a estrutura multiplicativa do conjunto dos números inteiros que foi estudada até agora, com sua estrutura aditiva:

2 Teorema de Bézout

Teorema

Se d=mdc(a,b), então existem inteiros x e y tais que d=ax+by.

Wikipedia
Wikipedia
A Wikipédia tem mais sobre este assunto:
Identidade de Bézout

O resultado também é conhecido como identidade de Bézout.

Antes de apresentar qualquer justificativa (construtiva ou puramente algébrica) dessa identidade, serão mostradas suas consequências imediatas mais importantes.

2.1 Corolário

Corolário

Se m|ab e (a,m)=1 então m|b.

Demonstração
Pelo teorema anterior, o máximo divisor comum entre a e m pode ser escrito como:
1=ax+my, com x e y inteiros.

Multiplicando cada membro da equação anterior por b, obtem-se b=(ba)x+bmy.

Claramente, m divide cada parcela desta soma. Consequentemente deve dividir b.

Wikipedia
Wikipedia
A Wikipédia tem mais sobre este assunto:
Euclides

Com essa propriedade, devida a Euclides de Alexandria, já é possível demonstrar o teorema que [[../Números primos#Teorema fundamental da aritmética|ficou pendente]] no capítulo anterior:

2.2 Propriedade fundamental dos primos

Teorema

Se um número primo divide o produto de dois números inteiros, então ele é divisor de um dos dois.

Demonstração
Sejam a,b e p um número primo que divide o produto ab.

Será provado que se p não divide a, então deve necessariamente dividir b.

De fato, como p é primo, o conjunto de seus divisores é D(p)={±1,±p}. Além disso, p|a, logo p não pode ser um divisor comum de a e b.

Segue que (a,b)=1.

De acordo com o corolário acima, isso implica que p divide b.

2.3 Demonstração do teorema de Bézout

Uma observação crucial para a demonstração do teorema de Bézout é que, para quaisquer números inteiros a,b, tem-se a igualdade (a,b)=(ab,b).

De fato, para que tal propriedade se verifique, é suficiente que os conjuntos D(a,b) e D(ab,b) sejam iguais. Isso é verdade, pois:

  • Se um deles está definido, então o outro também está. De fato, para b diferente de zero ambos conjuntos são definidos; para b igual a zero temos que a deve ser diferente de zero, e os dois conjuntos são iguais.
  • Se dD(a,b), então d|a e d|b.

Donde, d|ab.

Assim, dD(ab,b).

  • Reciprocamente, se dD(ab,b), então d|ab e d|b. Logo, deve dividir a soma:
d|(ab)+b=a,

ou seja, dD(a,b).

Outra propriedade do máximo divisor comum é a seguinte:

(b,a)=(a,b)=(a,b)=(a,b)

Por causa dela, pode ser suposto que ab0, e obter a demonstração:

Demonstração
A prova será feita por indução em a+b.

Obviamente, se a+b=0, tem-se a=b=0, e a propriedade é válida pois sempre que b=0 tem-se:

(a,b)=(a,0)=a=a1+b0

Logo, pode ser suposto que b>0 (e portanto, a+b>0).

Será tomada como hipótese de indução que: os pares de números inteiros m,n, cuja soma seja menor que a+b, têm (m,n)=mx+ny.

Como (a,b)=(ab,b), e ab somado com b é menor que a+b, a hipótese de indução garante que (ab,b)=(ab)u+bv. Então:

(a,b)=(ab)u+bv=au+b(vu)
Wikipedia
Wikipedia
A Wikipédia tem mais sobre este assunto:
Algoritmo

Como toda prova por indução, a demonstração anterior fornece um algoritmo. No caso, trata-se de um procedimento para o cálculo de (a,b):

Dados de entrada
  Os inteiros a e b.

Saída
  (a,b).

Procedimento
* Se a<b, então (a,b)=(b,a);
* Se b=0, então (a,b)=a;
* Senão (a,b)=(ab,b)

2.4 Exemplos numéricos

Usando o procedimento sugerido, pode-se calcular (30,18) facilmente. Acompanhe:

(30,18)=(12,18)=(18,12)=(6,12)=(6,6)=(0,6)=(6,0)=6

No entanto, quando se tem a bem maior que b, a igualdade mais utilizada será (a,b)=(ab,b).

Por exemplo, se a=100 e b=3 as etapas serão:

(100,3)=(97,3)=(94,3)==(4,3)=(1,3) =(3,1)=(2,1)=(1,1)=(0,1)=(1,0)=1

Neste caso, parece razoável subtrair 3 de 100 tantas vezes quanto for possível, em uma única etapa:

(100,3)=(100333,3)=(1,3)=1

Em geral, será buscado um valor q tal que 0abq<b, pois assim a igualdade (a,b)=(abq,b) (que é sempre verdadeira, para qualquer valor inteiro de q) reduz o cálculo de (a,b) a um caso bem mais simples.

A existência de um número q, satisfazendo ambas as desigualdades é garantida pelo algoritmo da divisão apresentado em um capítulo anterior. Se precisar relembrar os detalhes, consulte a seção "Algoritmo da divisão (de Euclides)".

De posse deste algoritmo, pode-se fazer uma melhoria no algoritmo sugerido anteriormente para o cálculo do MDC.

3 Algoritmo de Euclides para o MDC

Este livro tem a seguinte tarefa pendente: Adicionar informações históricas sobre o algoritmo e também uma referência às aplicações atuais em música, descrita nos artigos do Brun, e do Toussaint.

Consulte a Bibliografia

Teorema

Dados a,b, com ab0, verifique se b=0. Em caso afirmativo, o máximo divisor comum é o próprio a. Caso contrário, repita o processo usando b e o resto da divisão de a por b. Simbolicamente: Dados de entrada Os inteiros a e b. Saída (a,b). Procedimento * Se a<b, então (a,b)=(b,a); * Se b=0, então (a,b)=a; * Senão (a,b)=(abq,b), onde 0abq<b

Observe que esta é simplesmente uma generalização do algoritmo apresentado logo após a demonstração do teorema de Bézout.

Wikipedia
Wikipedia
A Wikipédia tem mais sobre este assunto:
Algoritmo de Euclides

É preciso verificar que o algoritmo irá parar, e ainda mais importante, que fornecerá a resposta correta.

Considere r0=a e r1=b, e a seguinte sequência de igualdades (obtidas pelo algoritmo da divisão):

r0= r1q0+r2 0r2<r1
r1= r2q1+r3 0r3<r2
rk2= rk1qk2+rk 0rk<rk1
rk1= rkqk1+rk+1 0rk+1<rk

Juntando as desigualdades anteriores, tem-se uma sequência decrescente de números não negativos:

r1>r2>r3>>rk>0

No entanto, só existe uma quantidade finita de números positivos menores que r1. Logo, depois de algum resto rk, tem-se rk+1=0, ou seja:

r1>r2>r3>>r𝐤>rk+1=0

É nesse ponto que o algoritmo para: quando o resto rk+1=0. Segundo o enunciado, o resultado fornecido será então rk.

Será que este é realmente o valor de (a,b)?

A resposta é sim, pois (a,b)=(ab,b)=(a2b,b)=(a3b,b)==(abq,b).

Logo, obtem-se sucessivamente:

(a,b)=(r0,r1)=(r1,r2)==(r𝐤,rk+1)=(r𝐤,0)=r𝐤

Portanto o valor fornecido pelo algoritmo corresponde a (a,b), e foi obtido através de exatamente k divisões.

3.1 Exemplo numérico

Quanto é (30,18)?

Aplicando o processo usado na demonstração do algoritmo de Euclides para o MDC, tem-se:

30=181+12
18=121+𝟔
12=𝟔2+0

Logo, (30,18)=6.

Para que não seja preciso explicitar cada uma das igualdades, pode-se dispor as informações de cada etapa em uma tabela como a seguinte:

quociente 1 1 2
30 18 12 6
Resto 12 6 0

É importante notar que, embora os quocientes apareçam indicados, o interesse está no valor dos restos.

Para obter automaticamente todas as etapas da aplicação do algoritmo de Euclides a outros pares de números inteiros, pode-se utilizar este recurso on-line, desenvolvido em javascript.

3.2 Interpretação matricial

Na demonstração de que o algoritmo de Euclides funciona, aparecem várias igualdades da forma:

rj1=rjqj1+rj+1

O índice j indica que esta é a j-ésima divisão efetuada no algoritmo.

Cada uma dessas equações é uma equação de diferenças de segunda ordem, em que cada termo é descrito em função de dois anteriores. No caso, cada resto depende dos próximos dois restos, e reciprocamente, cada resto depende dos dois anteriores.

Tal relação de recorrência pode também ser expressa como:

[rj1rj]=[qj1110][rjrj+1], sempre que 1jk

Com essa notação, os cálculos que aparecem no algoritmo de Euclides para o MDC tornam-se mais sucintos. Por exemplo:

[r0r1] =[q0110][r1r2]
=[q0110][q1110][r2r3]
=[q0110][q1110][q2110][r3r4]

Para facilitar ainda mais a escrita, pode-se adotar a seguinte convenção:

Qj=[qj110]

Se o cálculo anterior for efetuado para todas as etapas do algoritmo, o resultado final será:

[r0r1]=Q0Q1Qk1[d0]=M[d0], sendo que d=(a,b).

Perceba que assim não há uma confusão tão grande com os índices dos sucessivos quocientes e restos.

Como a matriz M é um produto de matrizes com entradas inteiras e não-negativas, nenhuma de suas entradas deverá ser negativa. Assim, é possível escrever M da seguinte forma:

M=[aubv], com a,b,u,v

Disso se conclui que

[r0r1]=[ab]=[aubv][d0]=[adbd]

Escrevendo Δ=det(M)=avbu, tem-se

Δ=det(Q0Q1Qk1)=det(Q0)det(Q1)det(Qk1)=(1)k, pois cada matriz Qi tem determinante igual a 1.

Logo, a matriz M é invertível e M1=1Δ[vuba]=Δ[vuba]. Esta última igualdade se justifica pois Δ=Δ1.

Dessas considerações, resulta que:

[d0]=M1[ab]=Δ[vuba][ab]

Fazendo o produto, e igualando cada componente, conclui-se que:

{d=a(Δv)+b(Δu)0=Δ(ba+ab)

A primeira destas equações corresponde ao teorema de Bézout, com x=Δv e y=Δu. Já a segunda, implica em ba=ab. Esse valor coincide com o conhecido mínimo múltiplo comum entre a e b, definido a seguir:

Definição

O mínimo múltiplo comum dos inteiros a e b, mmc(a,b), é o menor elemento positivo do conjunto M(a,b)={x:a,b|x}

Segundo o comentário que precede esta definição, tem-se:

mmc(a,b)=ab(a,b)
Justificativa
Fica a cargo do leitor justificar este fato. Sinta-se livre para melhorar a qualidade deste texto, incluindo a justificativa neste módulo.

3.2.1 Exemplificando

Anteriormente foi visto que:

30=18𝟏+12
18=12𝟏+6
12=6𝟐+0

Utilizando esses valores, segue que:

[3018]=[𝟏110][𝟏110][𝟐110][60]=[5231][60].

Para este exemplo, a matriz inversa é

M1=(1)3[1235]=[1235]

Logo,

[60]=[1235][3018]=[130218330518], ou seja
  • (30,18)=6=30(1)+182
  • mmc(30,18)=330=518=90

Note que, quando a,b são positivos, a expressão d=a(Δv)+b(Δu)=ax+by deve ter exatamente um dos valores x,y menor que zero, para que a combinação linear de a,b não seja maior que qualquer um deles.

Considere uma outra situação: como encontrar o mínimo múltiplo comum entre 7 e 5?

Primeiramente, pelo algoritmo de Euclides tem-se:

7=5.1+2
5=2.2+1
2=1.2+0

Logo mdc(7,5)=1.

Daí tem-se que mmc(7,5)=7×51=35.

4 Uma demonstração alternativa do teorema de Bézout

Agora será apresentada uma prova não construtiva do teorema de Bézout. Isso significa que, embora a mesma assegure a validade do teorema, ela não fornece um método para a obtenção do MDC (ao contrário do que foi feito anteriormente).

Além disso, são utilizados alguns conceitos que certamente são conhecidos por aqueles que possuem conhecimentos básicos de álgebra. Se este não for o seu caso, você poderá pular esta seção, e não haverá prejuizo na leitura do restante deste livro.

Demonstração
Sendo a,b números inteiros, considere J={ax+by:x,y}.

Então, J é um subgrupo aditivo de (um ideal), ou seja, J possui as seguintes propriedades:

  1. 0J;
  2. Dados z,zJ, tem-se z+zJ.

De fato, se z,zJ então:

  • z=ax+by
  • z=ax+by

com x,x,y,y. Então:

z+z=(ax+by)+(ax+by)=a(x+x)+b(y+y)J

Mas todo subgrupo (aditivo?) de é escrito como J=m={0,±m,±2m,±3m,}, com m0, pois:

Se J é subgrupo de , então J possui elementos não-negativos. Em particular, J possui um menor elemento não-negativo m.
Se zJ então pelo algoritmo de divisão, z=mq+r, com 0r<m.
Donde r=zmqJ.
Como 0r<m, segue que r=0, ou seja, z=mq.

Para provar que se tem m=(a,b), escreva m=ax0+by0 (isso é possível, já que mJ).

Observe que:

  • a=a1+b0
  • b=a0+b1

Então, tem-se a,bJ=m, ou seja, m é divisor de a,b.

Mas m é o maior divisor porque, dado qualquer outro divisor δD(a,b), tem-se δ|ax0+by0=m

Logo, |δ||m|, ou seja, m=(a,b).

5 Exercícios

  1. O algoritmo da divisão estabelece que dados os inteiros a,b, existem inteiros q,r tais que a=bq+r, com 0r<b. Utilize uma calculadora comum (e apenas as quatro operações elementares) para obter os valores de q,r correspondentes a alguns pares de inteiros a,b.
  2. Dados a e b, determine o valor de mdc(a,b) e números inteiros x, y tais que d = xa + yb, para os seguintes valores de a e b:
    1. a = 299 e b = 161
    2. a = 435 e b = 232
    3. a = 101 e b = 33
    4. a = 145 e b = 48

6 Ver também

6.1 Wikipedia