Escolar Documentos
Profissional Documentos
Cultura Documentos
r 0 r = 0. Logo r 0 = r e consequentemente
q 0 = q.
Algebra
(Curso de CC)
Ano lectivo 2005/2006
32 / 68
Exemplo
Para a = 27 e b = 6, o algoritmo da divisao da 27 = 6 4 + 3.
O algoritmo da divisao, para a e b inteiros positivos, pode ser descrito da
forma seguinte.
fim;
Output: dois n
umeros inteiros q e r tais que a = bq + r e 0 r < b
Algebra
(Curso de CC)
33 / 68
Exerccio
Escreva uma funcao GAP que efectue o algoritmo da divisao. 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 funcao que permita testar a funcao acabada de construir
com valores gerados aleatoriamente (use a funcao RandomList).
No GAP as func
oes QuoInt e RemInt permitem calcular,
respectivamente, o quociente e o resto da divisao de dois n
umeros
inteiros positivos. A funcao QuotientRemainder devolve uma lista com
o quociente e o resto da divisao de dois n
umeros inteiros positivos. O
operador mod calcula o resto da divisao de dois n
umeros inteiros
quaisquer (sendo o divisor nao nulo).
gap>
4
3
gap>
[ 4,
gap>
3
QuoInt(27,6); RemInt(27,6);
QuotientRemainder(27,6);
3 ]
27 mod 6;
Algebra
(Curso de CC)
34 / 68
Exerccio
Em Illinois (EUA) os u
ltimos tres dgitos da carta de conducao sao
determinados pela f
ormula: 31(m 1) + d + s, onde m e o n
umero
correspondente ao mes de nascimento, d e o dia de nascimento e s vale 0
se for homem e 600 se for mulher.
Escreva um programa no GAP que, dados os tres u
ltimos dgitos de uma
carta de conducao emitida em Illinois, determine o sexo, o mes e o dia de
nascimento do condutor.
Teste o programa para os seguintes casos: 972 = 31 11 + 31 (mulher
que nasceu em Dezembro, mes 12, no dia 31); 341 = 31 10 + 31
(n
umero invalido); 001 = 31 0 + 1 (homem que nasceu em Janeiro, mes
1, no dia 1).
Algebra
(Curso de CC)
35 / 68
Nota
Sendo a e b inteiros nao 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 |.
Algebra
(Curso de CC)
36 / 68
Exemplo
Determinacao (pela definicao) 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);
Exerccio
Construa uma funcao GAP para determinar o maximo divisor comum de
dois n
umeros inteiros nao simultaneamente nulos, com base na definicao.
Algebra
(Curso de CC)
37 / 68
Proposicao (Euclides)
Sejam a e b inteiros positivos e seja a = qb + r , com q, r Z e
0 r < b. Entao mdc(a, b) = mdc(b, r ).
Demonstrac
ao. 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
ao k | a qb = r .
: Se k | b e k | r = a qb, para algum k N, ent
ao k | a qb + qb = a.
Exemplo
Vamos determinar mdc(154, 105).
154 = 105 1 + 49
105 = 49 2 + 7
49 = 7 7 + 0
Algebra
(Curso de CC)
38 / 68
rk2 = rk1 qk + rk
rk1 = rk qk+1 + 0
0 < r1
0 < r2
0 < r3
0 < rk
<b
< r1
< r2
< rk1
Algebra
(Curso de CC)
39 / 68
end;
Output: r1 , o maximo divisor comum de a e b
Exerccio
Construa uma funcao GAP que, dados dois n
umeros inteiros positivos,
determine atraves do Algoritmo de Euclides o seu maximo divisor comum.
Algebra
(Curso de CC)
40 / 68
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
=
=
=
=
=
=
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
Algebra
(Curso de CC)
41 / 68
Algebra
(Curso de CC)
42 / 68
end;
Output: inteiros x1 e y1 tais que r1 = mdc(a, b) = x1 a + y1 b
Algebra
(Curso de CC)
43 / 68
Algebra
(Curso de CC)
44 / 68
Algebra
(Curso de CC)
45 / 68
Proposicao
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, entao
mdc da , db = d1 mdc(a, b).
Demonstrac
ao. (i) Existem x, y , r , s Z tais que
mdc(na, nb) = xna + ynb e mdc(a, b) = ra + sb.
Ent
ao, 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 ea b. Utilizando (i) temos que
mdc(a, b) = mdc d da , d db = d mdc da , db .
Proposicao
Sejam a, b e c inteiros, com a e b primos entre si. Se a | bc, entao a | c.
Demonstrac
ao. 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.
Algebra
(Curso de CC)
46 / 68