Propriedades dos inteiros
Teorema (Algoritmo da Divisão)
Sejam a e b números inteiros, com b > 0. Então existem números
inteiros q e r , únicos e tais que a = bq + r , com 0 ≤ r < b.
Demonstração. Existência:
Consideremos S = {a − bk | k ∈ Z ∧ a − bk ≥ 0}.
Se 0 ∈ S, então b divide a. Fazendo q = a/b e r = 0 temos o pretendido.
Suponhamos agora que 0 ∈
/ S. Como 0 ∈
/ S, temos que ∀k ∈ Z, a 6= bk, ou
seja, b não divide a, donde a 6= 0. Se a > 0, a − b · 0 ∈ S; se a < 0,
a − b(2a) = a(1 − 2b) ∈ S. Assim, pelo Princı́pio de Boa Ordenação, podemos
afirmar que S tem um elemento mı́nimo, digamos r = a − bq, para algum
q ∈ Z. Assim obtemos que a = bq + r e r ≥ 0 (por definição de S), faltando
provar que r < b.
Suponhamos que r > b, então a − b(q + 1) = a − bq − b = r − b > 0. Deste
modo a − b(q + 1) ∈ S e a − b(q + 1) < a − bq, o que não pode ser, pois a − bq
é o elemento mı́nimo de S. Portanto, r ≤ b. Se r = b, então b = a − bq, isto
é, a − b(q + 1) = 0. Assim 0 ∈ S o que contradiz a hipótese. Logo r < b.
Unicidade de q e de r :
Suponhamos que a = bq + r , com 0 ≤ r < b e a = bq 0 + r 0 , com 0 ≤ r 0 < b.
Podemos supor que r 0 ≥ r . Temos que bq + r = bq 0 + r 0 , ou seja,
b(q − q 0 ) = r 0 − r . Como b divide r 0 − r e 0 ≤ r 0 − r ≤ r 0 < b, temos que
r 0 − r = 0. Logo r 0 = r e consequentemente
q 0 = q.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
32 / 68
Propriedades dos inteiros
Os inteiros a e b referidos no teorema anterior designam-se por dividendo
e divisor, respectivamente. Os inteiros q e r designam-se,
respectivamente, por quociente e resto da divisão de a por b.
Exemplo
Para a = 27 e b = 6, o algoritmo da divisão dá 27 = 6 · 4 + 3.
O algoritmo da divisão, para a e b inteiros positivos, pode ser descrito da
forma seguinte.
Algoritmo (Algoritmo da divisão)
Input: dois números inteiros positivos a e b (a ≥ b)
q ← 0; r ← 0;
while (a − q ∗ b ≥ b) do
q ← q + 1;
r ← a − q ∗ b;
fim;
Output: dois números inteiros q e r tais que a = bq + r e 0 ≤ r < b
Álgebra (Curso de CC)
Ano lectivo 2005/2006
33 / 68
Propriedades dos inteiros
Exercı́cio
Escreva uma função GAP que efectue o algoritmo da divisão. Dados os
inteiros positivos a e b deve devolver os valores de q e de r numa lista da
forma [q, r ].
Crie uma outra função que permita testar a função acabada de construir
com valores gerados aleatoriamente (use a função RandomList).
No GAP as funções QuoInt e RemInt permitem calcular,
respectivamente, o quociente e o resto da divisão de dois números
inteiros positivos. A função QuotientRemainder devolve uma lista com
o quociente e o resto da divisão de dois números inteiros positivos. O
operador mod calcula o resto da divisão de dois números inteiros
quaisquer (sendo o divisor não nulo).
gap>
4
3
gap>
[ 4,
gap>
3
QuoInt(27,6); RemInt(27,6);
QuotientRemainder(27,6);
3 ]
27 mod 6;
Álgebra (Curso de CC)
Ano lectivo 2005/2006
34 / 68
Propriedades dos inteiros
Exercı́cio
Em Illinois (EUA) os últimos três dı́gitos da carta de condução são
determinados pela fórmula: 31(m − 1) + d + s, onde m é o número
correspondente ao mês de nascimento, d é o dia de nascimento e s vale 0
se for homem e 600 se for mulher.
Escreva um programa no GAP que, dados os três últimos dı́gitos de uma
carta de condução emitida em Illinois, determine o sexo, o mês e o dia de
nascimento do condutor.
Teste o programa para os seguintes casos: 972 = 31 · 11 + 31 (mulher
que nasceu em Dezembro, mês 12, no dia 31); 341 = 31 · 10 + 31
(número inválido); 001 = 31 · 0 + 1 (homem que nasceu em Janeiro, mês
1, no dia 1).
Álgebra (Curso de CC)
Ano lectivo 2005/2006
35 / 68
Propriedades dos inteiros
Definição (Máximo Divisor Comum)
O máximo divisor comum de dois inteiros a e b não simultaneamente
nulos é o maior de todos os divisores comuns a ambos. Vamos denotar
este inteiro por mdc(a, b).
Note-se que, se d divide a e b, então −d também divide a e b. Assim,
pretendendo encontrar o maior de todos os divisores comuns de dois
inteiros, basta considerar divisores positivos, como se afirma na primeira
parte da seguinte nota.
Nota
Sendo a e b inteiros não simultaneamente nulos,
(i) mdc(a, b) = max{k ∈ N | k|a ∧ k|b};
(ii) mdc(a, b) = mdc(b, a);
(iii) mdc(a, 0) =| a |.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
36 / 68
Propriedades dos inteiros
No GAP a função DivisorsInt dá uma lista dos divisores positivos de
um inteiro não nulo.
Exemplo
Determinação (pela definição) de mdc(16, 20) (fazendo uso do GAP):
gap>
[ 1,
gap>
[ 1,
gap>
[ 1,
gap>
4
D16:=DivisorsInt(16);
2, 4, 8, 16 ]
D20:=DivisorsInt(20);
2, 4, 5, 10, 20 ]
DC:=Intersection(D16,D20);
2, 4 ]
Maximum(DC);
Exercı́cio
Construa uma função GAP para determinar o máximo divisor comum de
dois números inteiros não simultaneamente nulos, com base na definição.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
37 / 68
Propriedades dos inteiros
Proposição (Euclides)
Sejam a e b inteiros positivos e seja a = qb + r , com q, r ∈ Z e
0 ≤ r < b. Então mdc(a, b) = mdc(b, r ).
Demonstração. Para provar que mdc(a, b) = mdc(b, r ) basta provar que
{k ∈ N | k|a ∧ k|b} = {k ∈ N | k|b ∧ k|r }.
⊆: Se k | a e k | b, para algum k ∈ N, então k | a − qb = r .
⊇: Se k | b e k | r = a − qb, para algum k ∈ N, então k | a − qb + qb = a.
Exemplo
Vamos determinar mdc(154, 105).
154 = 105 · 1 + 49
105 = 49 · 2 + 7
49 = 7 · 7 + 0
(mdc(154, 105) = mdc(105, 49))
(mdc(105, 49) = mdc(49, 7))
(mdc(49, 7) = mdc(7, 0))
Assim, mdc(154, 105) = mdc(105, 49) = mdc(49, 7) = mdc(7, 0) = 7.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
38 / 68
Propriedades dos inteiros
Este processo (designado por Algoritmo de Euclides) permite determinar
mdc(a, b), a e b inteiros positivos, realizando divisões sucessivas de
forma a encontrar uma sequência decrescente de inteiros
r1 > r2 > ... > rk tais que:
a = bq1 + r1
b = r1 q2 + r2
r1 = r2 q3 + r3
···
rk−2 = rk−1 qk + rk
rk−1 = rk qk+1 + 0
0 < r1
0 < r2
0 < r3
···
0 < rk
<b
< r1
< r2
< rk−1
mdc(a, b) é igual a rk , o resto que antecede o resto nulo.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
39 / 68
Propriedades dos inteiros
Algoritmo (Algoritmo de Euclides)
Input: dois números inteiros positivos a e b
r1 ← a; r2 ← b;
while r2 6= 0 do
r0 ← r1 ;
r1 ← r2 ;
r2 ← r0 mod r1 ;
end;
Output: r1 , o maximo divisor comum de a e b
Exercı́cio
Construa uma função GAP que, dados dois números inteiros positivos,
determine através do Algoritmo de Euclides o seu máximo divisor comum.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
40 / 68
Propriedades dos inteiros
Exemplo
Vamos aplicar o Algoritmo de Euclides para determinar mdc(3150, 495).
3150
495
180
135
=
=
=
=
495 · 6 + 180
180 · 2 + 135
135 · 1 + 45
45 · 3 + 0
Resulta que mdc(3150, 495) = 45.
As igualdades anteriores permitem escrever 45 como uma combinação
linear de 3150 e 495:
45 = mdc(3150, 495)
=
=
=
=
=
=
180 − 135 · 1
180 − 1 · (495 − 2 · 180)
3 · 180 − 1 · 495
3 · (3150 − 6 · 495) − 1 · 495
3 · 3150 − 19 · 495
3 · 3150 + (−19) · 495
Encontrámos inteiros x e y (x = 3 e y = −19) tais que
mdc(3150, 495) = x · 3150 + y · 495.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
41 / 68
Propriedades dos inteiros
Teorema (MDC como combinação linear)
Sejam a e b inteiros não simultaneamente nulos. Então existem inteiros
x e y tais que mdc(a, b) = xa + yb. Além disso, mdc(a, b) é o menor
inteiro positivo da forma xa + yb.
Demonstração. Seja S = {ma + nb | m, n inteiros e ma + nb > 0}. Como S é
não vazio (se uma escolha de m e n faz ma + nb < 0, então substitui-se m e n
por −m e −n, obtendo, assim, um elemento de S), o Princı́pio de Boa
Ordenação diz que S tem um elemento mı́nimo, digamos d = xa + yb, onde x
e y são inteiros.
Vejamos que d = mdc(a, b). O Algoritmo da Divisão permite escrever
a = dq + r , com 0 ≤ r < d. Vamos supor que r > 0. Assim,
r = a − dq = a − (xa + yb)q = a − xaq − ybq = (1 − xq)a + (−yq)b ∈ S,
contradizendo o facto de que d é o elemento mı́nimo de S. Logo r = 0 e d
divide a. De forma análoga prova-se que d divide b. Isto prova que d é um
divisor comum de a e b.
Resta provar que d é o menor divisor comum de a e b. Suponhamos que d 0 é
outro divisor comum de a e b. Então, para alguns g e h inteiros, a = d 0 g e
b = d 0 h. Assim, d = xa + yb = x(d 0 g ) + y (d 0 h) = d 0 (xg + yh), portanto d 0 é
um divisor de d. Logo, d é o maior de todos os divisores comuns a a e b.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
42 / 68
Propriedades dos inteiros
Algoritmo (Algoritmo de Euclides - versão alargada)
Input: dois números inteiros positivos a e b
r1 ← a; r2 ← b;
x1 ← 1; x2 ← 0;
y1 ← 0; y2 ← 1; while r2 6= 0 do
r0 ← r1 ; r1 ← r2 ;
x0 ← x1 ; x1 ← x2 ;
y0 ← y1 ; y1 ← y2 ;
q ← QuocienteInteiro(r0 , r1 );
r2 ← r0 − q ∗ r1 ;
x2 ← x0 − q ∗ x1 ;
y2 ← y0 − q ∗ y1 ;
end;
Output: inteiros x1 e y1 tais que r1 = mdc(a, b) = x1 a + y1 b
Álgebra (Curso de CC)
Ano lectivo 2005/2006
43 / 68
Propriedades dos inteiros
Existem no GAP as funções GcdInt e Gcdex para determinar o máximo
divisor comum de dois inteiros não simultaneamente nulos. Esta última,
encontra os números necessários para escrever o máximo divisor comum
como uma combinação linear.
gap> GcdInt(2520,154);
14
gap> Gcdex(2520,154);
rec(gcd:=14,coeff1:=3,coeff2:=-49,coeff3:=-11,coeff4:=180)
No output da função Gcdex, coeff1 e coeff2 são os inteiros x e y
necessários para escrever mdc(a, b) = xa + yb e coeff3 e coeff4 são
inteiros m e n tais que 0 = ma + nb. No caso do exemplo, o output
diz-nos que mdc(2520, 154) = 14, que
mdc(2520, 154) = 2520 · 3 + 154 · (−49) e, ainda, que
0 = 2520 · (−11) + 154 · 180.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
44 / 68
Propriedades dos inteiros
Teorema (Caracterização do máximo divisor comum)
Sejam a, b, d ∈ Z+ . As afirmações seguintes são equivalentes:
(i) d = mdc(a, b).
(ii) d é um divisor comum de a e b tal que todo o divisor comum de a e
b divide d.
(iii) d é o menor inteiro positivo da forma xa + yb, com x, y inteiros, isto
é, d = min{i ∈ N | ∃x, y ∈ Z : i = xa + yb}.
Demonstração. (i)⇒(ii) Seja d = mdc(a, b). Então d = xa + yb, para alguns
inteiros x e y . Se c é um divisor comum de a e b, então c | xa + yb = d.
(ii)⇒(i) Seja D um divisor comum de a e b tal que todo o divisor comum de a
e b divide D. Como mdc(a, b) é um divisor comum de a e b, então mdc(a, b)
divide D e, portanto, mdc(a, b) ≤ D. Por outro lado, D não pode ser maior
que o máximo divisor comum de a e b. Logo, D tem que ser igual a mdc(a, b).
(i)⇔(iii) Já foi provado no teorema anterior.
Na demonstração da proposição seguinte intervém (iii), isto é, o facto de
mdc(a, b) ser o menor inteiro positivo que se pode escrever como
combinação linear de a e b.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
45 / 68
Propriedades dos inteiros
Proposição
Sejam a e b inteiros positivos.
(i) Sendo n ∈ N, tem-se mdc(na, nb) = n · mdc(a, b).
(ii) Se d for um
divisor comum positivo de a e b, então
mdc da , db = d1 mdc(a, b).
Demonstração. (i) Existem x, y , r , s ∈ Z tais que
mdc(na, nb) = xna + ynb e mdc(a, b) = ra + sb.
Então, mdc(na, nb) = xna + ynb = n(xa + yb) ≥ n · mdc(a, b).
A outra desigualdade: n · mdc(a, b) = n(ra + sb) = nra + nsb ≥ mdc(na, nb).
(ii) Seja d um divisor
` positivo
´ comum `a a e´a b. Utilizando (i) temos que
mdc(a, b) = mdc d da , d db = d · mdc da , db .
Quando mdc(a, b) = 1, os inteiros a e b dizem-se primos entre si.
Proposição
Sejam a, b e c inteiros, com a e b primos entre si. Se a | bc, então a | c.
Demonstração. Tem-se bc = ka e ax + by = 1, para certos inteiros k, x, y .
Assim, c = c · 1 = c(ax + by ) = cax + cby = cax + kay = a(cx + ky ). Logo,
a | c.
Álgebra (Curso de CC)
Ano lectivo 2005/2006
46 / 68
Download

Aula número 3