Buscar

Alguns Topicos de Matematica Discreta - Ana Paula Tomas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 103 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 103 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 103 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Alguns To´picos de Matema´tica Discreta
Ana Paula Toma´s
Departamento de Cieˆncia de Computadores
Faculdade de Cieˆncias do Porto
2005
Conteu´do
1 Conjuntos 1
1.1 Operac¸o˜es com Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Representac¸a˜o de Nu´meros em Computador 7
2.1 Sistema de Representac¸a˜o Posicional . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Relac¸a˜o entre bina´rio, octal e hexadecimal . . . . . . . . . . . . . . . . 11
2.1.2 Adic¸a˜o e multiplicac¸a˜o na base b . . . . . . . . . . . . . . . . . . . . . 12
2.1.3 Representac¸a˜o de nu´meros com um nu´mero fixo de d´ıgitos . . . . . . . 15
2.1.4 Representac¸a˜o de nu´meros negativos . . . . . . . . . . . . . . . . . . . 16
2.2 Adic¸a˜o e Subtracc¸a˜o em n Bits . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.1 Adic¸a˜o e subtracc¸a˜o bina´ria de inteiros na˜o negativos . . . . . . . . . 19
2.2.2 Adic¸a˜o de inteiros em complemento para 2 . . . . . . . . . . . . . . . 20
2.2.3 Subtracc¸a˜o de inteiros em complemento para 2 . . . . . . . . . . . . . 20
2.3 Representac¸a˜o em Vı´rgula Fixa . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Representac¸a˜o em Vı´rgula Flutuante . . . . . . . . . . . . . . . . . . . . . . . 21
3 Algumas Noc¸o˜es de Divisibilidade 23
3.1 Bases de Numerac¸a˜o e Crite´rios de Divisibilidade . . . . . . . . . . . . . . . . 23
3.2 Noc¸a˜o de Divisor e de Mu´ltiplo . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 Factorizac¸a˜o em Primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Determinac¸a˜o de primos: crivo de Erasto´tenes . . . . . . . . . . . . . 27
3.3.2 Ca´lculo de divisores por ana´lise da factorizac¸a˜o em primos . . . . . . . 28
3.4 Ma´ximo Divisor Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.1 Ca´lculo do ma´ximo divisor comum pelo algoritmo de Euclides . . . . . 29
3.5 Mı´nimo Mu´ltiplo Comum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.6 Congrueˆncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
i
4 Induc¸a˜o Matema´tica 33
4.1 Princ´ıpio de Induc¸a˜o Matema´tica . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Erros frequentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Induc¸a˜o Forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.1 Outras formulac¸o˜es do princ´ıpio de induc¸a˜o . . . . . . . . . . . . . . . 42
5 Relac¸o˜es Bina´rias 43
5.1 Relac¸o˜es Bina´rias de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1.1 Operac¸o˜es com relac¸o˜es bina´rias . . . . . . . . . . . . . . . . . . . . . 43
5.1.2 Matriz duma relac¸a˜o bina´ria . . . . . . . . . . . . . . . . . . . . . . . 45
5.1.3 Func¸o˜es de A em B . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2 Relac¸o˜es Bina´rias Definidas num Conjunto . . . . . . . . . . . . . . . . . . . . 47
5.2.1 Propriedades das relac¸o˜es bina´rias definidas em A . . . . . . . . . . . 48
5.2.2 Grafo da relac¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3 Relac¸o˜es de Compatibilidade e de Equivaleˆncia . . . . . . . . . . . . . . . . . 50
5.3.1 Classes de equivaleˆncia . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3.2 Partic¸o˜es e relac¸o˜es de equivaleˆncia . . . . . . . . . . . . . . . . . . . . 53
5.3.3 Classes de Compatibilidade . . . . . . . . . . . . . . . . . . . . . . . . 55
5.4 Relac¸o˜es de Ordem Parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4.1 Diagrama de Hasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4.2 Ma´ximos, mı´nimos, supremo, ı´nfimo, majorantes e minorantes . . . . 59
5.5 Fechos duma Relac¸a˜o para uma Propriedade . . . . . . . . . . . . . . . . . . . 60
5.5.1 Fecho transitivo e percursos em grafos . . . . . . . . . . . . . . . . . . 62
5.5.2 Fecho transitivo duma relac¸a˜o definida num conjunto finito . . . . . . 68
6 Grafos e Multigrafos 71
6.1 Grafos Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.1.1 Multigrafos dirigidos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.1.2 Grafos, Percursos e relac¸o˜es bina´rias . . . . . . . . . . . . . . . . . . . 74
6.2 Grafos Na˜o Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.2.1 Grafos Conexos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.2.2 Condic¸a˜o necessa´ria para um grafo ser conexo . . . . . . . . . . . . . . 78
6.3 A´rvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.3.1 A´rvores com ra´ız . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
6.4 Percursos Eulerianos e Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . 82
6.5 Grafos Planares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.6 Isomorfismo de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
ii
6.7 Colorac¸a˜o de Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.8 Grafos com Valores Associados aos Ramos . . . . . . . . . . . . . . . . . . . . 86
6.8.1 Determinac¸a˜o da distaˆncia mı´nima . . . . . . . . . . . . . . . . . . . . 87
6.9 Grafos com S´ımbolos Associados aos Ramos . . . . . . . . . . . . . . . . . . . 93
iii
iv
Prefa´cio
Estes apontamentos teˆm por base material elaborado em anos anteriores para disciplinas da
licenciatura em Cieˆncia de Computadores [5, 6, 7], o qual foi agora revisto e nalguns to´picos
completado para servir de apoio a` disciplina de Matema´tica para Cieˆncia de Computadores,
no ano lectivo de 2005/06. Na˜o visam substituir a leitura da bibliografia recomendada pelos
docentes e na˜o cobrem actualmente todos os to´picos abordados na disciplina.
v
vi
Cap´ıtulo 1
Conjuntos
Neste cap´ıtulo vamos essencialmente recordar ou introduzir alguma da notac¸a˜o que e´ usada
para conjuntos. Tomamos a noc¸a˜o de conjunto como primitiva, convencionando que um
conjunto e´ constitu´ıdo por elementos – objectos materiais ou entes abstractos que teˆm
alguma propriedade em comum (no caso extremo, a de pertencerem todos a esse conjunto).
Os conjuntos podem ser vazios (i.e. sem elementos). Em geral, usamos letras maiu´sculas
para designar conjuntos e minu´sculas para referir os seus elementos. Para indicar que a e´ um
elemento do conjunto A escrevemos a ∈ A. Os conjuntos podem ser especificados em extensa˜o
– exibindo todos os elementos que os constituem – ou indicando a propriedade que caracteriza
os seus elementos – definic¸a˜o em compreensa˜o. Por exemplo, {1, 2, 3, 4} e {n | n ∈ Z+∧n ≤ 4}.
Notac¸a˜o. Sejam A e B conjuntos.
a ∈ A a pertence a A, a e´ elemento de A
a /∈ A a na˜o pertence a A
A = B igualdade de conjuntos (qualquer que seja x,
x ∈ A se e so´ se x ∈ B)
A ⊆ B A contido em B, A subconjunto de B
(qualquer que seja x, se x ∈ A enta˜o x ∈ B)
A ⊇ B A conte´m B, B ⊆ A
A ⊂ B A contido propriamente em B,
A subconjunto pro´prio de B
A ⊆ B ∧A 6= B
A ⊃ B A conte´m propriamente B
A 6= B A 6⊆ B ou B 6⊆ A
∅ ou {} conjunto vazio
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
1.1. OPERAC¸O˜ES COM CONJUNTOS 2
O conjunto dos subconjuntos de A, representa-se por P(A) ou 2A. Qualquer con-
junto A pertence ao seu conjunto de subconjuntos, isto e´ A ∈ P(A). Por exemplo,
P({1, 2, 3}) = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
O conjunto P({1, 2, 3}) tem 23 elementos. Tambe´m se pode verificar que P(P({1, 2, 3}))
tem 22
3
elementos. Se A tem n elementos, P(A) tem 2n elementos.
Nestes apontamentos, N representa o conjunto dos inteiros na˜o negativos (incluindo
assim tambe´m 0).
N inteirosna˜o negativos (em vez de N0)
Z inteiros
Q racionais
R reais
R+0 reais na˜o negativos
R+ reais positivos
R− reais negativos
Um conjunto A na˜o vazio e´ finito se e so´ se existir uma bijecca˜o de A em {x ∈ N | x < n}
para algum n ∈ N. Nesse caso, n e´ o cardinal (nu´mero de elementos) de A. Usamos |A| (ou,
alternativamente, #A) para designar o cardinal de A. O cardinal do conjunto vazio e´ zero.
A propo´sito de questo˜es de notac¸a˜o, e´ de salientar que
{n | n ∈ N}
{n}, com n ∈ N
denotam conjuntos diferentes: o primeiro e´ N e o segundo e´ constitu´ıdo por um u´nico inteiro
(que esta´ a ser representado pela letra n).
1.1 Operac¸o˜es com Conjuntos
A intersecc¸a˜o de A com B representa-se por A ∩ B, e e´ o conjunto dos elementos que
pertencem a ambos os conjuntos.
A ∩B = {x | x ∈ A e x ∈ B}
A unia˜o de A com B que se representa por A ∪ B, e´ o conjunto dos elementos que
pertencem a pelo menos um dos conjuntos.
A ∪B = {x | x ∈ A ou x ∈ B}
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
1.1. OPERAC¸O˜ES COM CONJUNTOS 3
O complementar de B em A representa-se por A \B, e e´ o conjunto dos elementos de
A que na˜o pertencem a B.
A \ B = {x | x ∈ A e x /∈ B}
Quando esta´ implic´ıto um dado universo U , chama-se complementar de A, e representa-
se por A, ao complementar de A em U , ou seja a U \ A.
Exemplo 1 Vamos provar que A \ (B ∪C) = (A \B)∩ (A \C). Para tal vamos mostrar que
x ∈ A \ (B ∪ C)⇔ x ∈ (A \ B) ∩ (A \ C), qualquer que seja x.
x ∈ A \ (B ∪C) ⇔ x ∈ A ∧ x /∈ B ∪ C (por def. de diferenc¸a)
⇔ x ∈ A ∧ (x /∈ B ∧ x /∈ C) (por def. unia˜o)
⇔ x ∈ A \B ∧ x ∈ A \ C (por def. de diferenc¸a)
⇔ x ∈ (A \ B) ∩ (A \ C) (por def. intersecc¸a˜o)
Exemplo 2 Quaisquer que sejam os conjuntos A,B ⊆ U , tem-se A ∪B = A ∩B. De facto,
se x ∈ A ∪B enta˜o, por definic¸a˜o de complementar, x /∈ A ∪B. Logo, x /∈ A e x /∈ B. Mas,
x /∈ A sse x ∈ A. E, x /∈ B sse x ∈ B. Enta˜o, x ∈ A e x ∈ B. Donde, x ∈ A∩B. Mostra´mos
assim que A ∪B ⊆ A ∩B. Reciprocamente,
x ∈ A ∩B =⇒ (x ∈ A ∧ x ∈ B) (por def. ∩)
=⇒ (x /∈ A ∧ x /∈ B) (por def. complementar)
=⇒ x /∈ (A ∪B) (por def. ∪)
=⇒ x ∈ A ∪B (por def. complementar)
ou seja, A ∪B ⊇ A ∩B.
Exerc´ıcio 1.1.1 Suponha que os conjuntos indicados sa˜o subconjuntos do universo U . Sendo
A, B e C subconjuntos de U quaisquer, mostre cada uma das propriedades:
(a) A \ B = A ∩B = B \ A (j) ∅ = U (r) U = ∅
(b) A \ B = ∅ sse A ⊆ B (k) A \ A = ∅ (s) A \ ∅ = A
(c) A \ B = A sse A ∩B = ∅ (l) A = A (t) A ∪ U = U
(d) (A \ B) ∪ (B \ A) = (A ∪B) \ (B ∩A) (m) A ∪A = U (u) A ∩A = ∅
(e) (A ∩B) ∩ C = A ∩ (B ∩ C) (n) A ∩ U = A (v) A ∩A = A
(f) (A ∪B) ∪C = A ∪ (B ∪ C) (o) A ∪ ∅ = A
(g) (A ∪B) ∩ C = (A ∩ C) ∪ (B ∩ C)
(h) (A ∩B) ∪ C = (A ∪ C) ∩ (B ∪ C) (p) A ∪B = A ∩B
(i) A \ (B ∪ C) = (A \ B) ∩ (A \ C) (q) A ⊆ B sse B ⊆ A
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
1.1. OPERAC¸O˜ES COM CONJUNTOS 4
Exemplo 3 A t´ıtulo de exemplo, vamos analisar a veracidade ou falsidade das afirmac¸o˜es
seguintes e justifica´-la.
1. Qualquer que seja x ∈ Z, existe y ∈ Z tal que x ≤ y e x 6= y.
∀x ∈ Z ∃y ∈ Z (x ≤ y ∧ x 6= y)
A afirmac¸a˜o e´ verdadeira porque, sendo o conjunto dos inteiros infinito, se x e´ inteiro,
x + 1 tambe´m e´ um inteiro e x + 1 e´ superior a x. Ou seja, dado um x qualquer, se
considerarmos que y e´ x + 1, satisfazemos a condic¸a˜o (x ≤ y ∧ x 6= y). Note que y
dependera´ de x.
2. Existe y ∈ Z tal que para todo x ∈ Z se tem x ≤ y.
∃y ∈ Z ∀x ∈ Z x ≤ y
A afirmac¸a˜o e´ falsa porque em particular se x fosse y+1 enta˜o teriamos que ter y+1 ≤ y,
que na˜o e´ satisfaz´ıvel (ja´ que e´ equivalente a 1 ≤ 0).
3. Existe um inteiro na˜o negativo que na˜o excede qualquer outro inteiro na˜o
negativo.
∃x ∈ Z+0 ∀y ∈ Z+0 x ≤ y
A afirmac¸a˜o e´ verdadeira. O inteiro 0 e´ menor ou igual que cada um dos inteiros na˜o
negativos. Aqui, Z+0 denota o conjunto dos inteiros na˜o negativos, o qual identifica´mos
tambe´m por N.
4. Existe x ∈ Z tal que x e´ maior do que qualquer outro inteiro y.
∃x ∈ Z ∀y ∈ Z x > y
A afirmac¸a˜o e´ falsa (ana´loga a` 2).
5. Para todo A ⊆ Z, tem-se P(A) = {∅}.
A afirmac¸a˜o e´ falsa, porque {1} e´ um subconjunto de Z e P({1}) = {∅, {1}} 6= {∅}.
6. Para todo A ⊆ Z, se A = ∅ enta˜o P(A) = {∅}.
A afirmac¸a˜o e´ verdadeira. So´ existe um subconjunto de Z que e´ vazio, e P(∅) = {∅}.
Note que {∅} e´ um conjunto que tem um elemento. Esse elemento e´ ∅, ou seja, e´ o
conjunto vazio.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
1.1. OPERAC¸O˜ES COM CONJUNTOS 5
7. Tem-se P(A) = ∅, para algum A ⊆ Z.
∃A (A ⊆ Z ∧ P(A) = ∅)
A afirmac¸a˜o e´ falsa, porque qualquer que seja o subconjunto A de Z, o conjunto vazio e´
um elemento de P(A).
8. Quaisquer que sejam x, y ∈ Z, tem-se x ≤ y ou y ≤ x.
∀x ∈ Z ∀y ∈ Z (x ≤ y ∨ y ≤ x)
Dizer que x ≤ y equivale a dizer que existe um inteiro na˜o negativo z tal que y = x + z.
E´ verdade que (x ≤ y ∨ y ≤ x), quaisquer que sejam os inteiros x e y.
Como x− y e´ inteiro, quaisquer que sejam x e y, se x− y e´ na˜o negativo, enta˜o y ≤ x
pois x = y + (x − y). Se x − y e´ negativo, enta˜o y − x e´ um inteiro positivo, e como
y = x + (y − x), tem-se x ≤ y.
9. Qualquer que seja A ⊆ Z, se A 6= {−1, 2, 3} enta˜o 4 ∈ A.
∀A ( (A ⊆ Z ∧ A 6= {−1, 2, 3}) ⇒ 4 ∈ A) )
Falso. Existe um subconjunto de Z que e´ diferente de {−1, 2, 3} e que na˜o tem o 4. Por
exemplo, o conjunto vazio.
10. Quaisquer que sejam A,B ⊆ Z, se 5 ∈ A \B enta˜o 5 ∈ A.
∀A ∀B( (A ⊆ Z ∧ B ⊆ Z ∧ 5 ∈ A \B)⇒ 5 ∈ A )
A afirmac¸a˜o e´ verdadeira. Quaisquer que sejam os subconjuntos A e B de Z, tem-se
5 ∈ A \ B se e so´ se 5 ∈ A e 5 /∈ B. Logo, se 5 ∈ A \ B enta˜o 5 ∈ A.
11. Para todo o x ∈ Z, e quaisquer que sejam A,B ⊆ Z, se x ∈ A \ B enta˜o x ∈ A.
A afirmac¸a˜o e´ verdadeira. A justificac¸a˜o e´ semelhante a` dada para a afirmac¸a˜o anterior
(claro que e´ necessa´rio falar em x e na˜o em 5!).
12. Existe x ∈ Z tal que x ∈ A \ B, quaisquer que sejam A,B ⊆ Z.
Esta afirmac¸a˜o pode ser traduzida pela expressa˜o lo´gica
∃x (x ∈ Z ∧ ( ∀A∀B ( (B ⊆ Z ∧A ⊆ Z)⇒ x ∈ A \ B) ))
a qual escrevemos por vezes como
∃x ∈ Z ∀A ⊆ Z∀B ⊆ Z (x ∈ A \ B)
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
1.1. OPERAC¸O˜ES COM CONJUNTOS 6
que e´ falsa. Quaisquer que sejam os conjuntos A e B se A = B enta˜o A\B = ∅. Assim,
se tomarmos, por exemplo, A = B = {1}, os conjuntos A e B sa˜o subconjuntos de Z e
na˜o existe qualquer inteiro x tal que x ∈ A \B.
13. 2 + 2 = 4 ou
√
2 ∈ Z.
A afirmac¸a˜o e´ verdadeira porque embora
√
2 /∈ Z, e´ verdade que 2 + 2 = 4.
14. Se 2 + 2 6= 4 enta˜o √2 ∈ Z.
A afirmac¸a˜o e´ equivalente a “2 + 2 = 4 ou
√
2 ∈ Z”.
15. Se
√
2 ∈ Z enta˜o 2 + 2 6= 4.
A afirmac¸a˜o e´ equivalente a “
√
2 /∈ Z ou 2 + 2 6= 4”, e como √2 /∈ Z, a afirmac¸a˜o e´
verdadeira.
16.
√
2 6∈ Z ou 2 + 2 6= 4.
A afirmac¸a˜o e´ verdadeira porque
√
2 6∈ Z.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
Cap´ıtulo 2
Representac¸a˜o de Nu´meros em
Computador
Do mesmo modo que “5692 segundos”, “94 minutos e 52 segundos”, “1 hora, 34 minutos e 52
segundos” sa˜o designac¸o˜es ou representac¸o˜es diferentes da mesma entidade, tambe´m 5692(10),
13074(8) e 1011000111100(2) o sa˜o. De facto,
1 34 52(60) ≡ 1h34′52′′ ≡ 1× 602 + 34× 601 + 52× 600
5 6 9 2(10) ≡ 5× 103 + 6× 102 + 9× 101 + 2× 100
1 3 0 7 4(8) ≡ 1× 84 + 3× 83 + 0× 82 + 7× 81 + 4× 80
1 0 1 1 0 0 0 1 1 1 1 0 0(2) ≡ 1× 212 + 0× 211 + 1× 210 + 1× 29 + 0× 28 + 0× 27 +
0× 26 + 1× 25 + 1× 24 + 1× 23 + 1× 22 + 0× 21 + 0× 20
dizendo-se que 60, 10, 8 e 2 sa˜o as bases de numerac¸a˜o, respectivas. Habitualmente, escreve-se
5692 em vez de 5692(10), porque a base mais usual para representac¸a˜o de inteiros e´ a base 10,
designada por decimal. As bases 8 e 2 sa˜o designadas por octal e bina´ria. Se considerarmos
as poteˆnciasde 2,
212 211 210 29 28 27 26 25 24 23 22 21 20
4096 2048 1024 512 256 128 64 32 16 8 4 2 1
podemos observar que 5692 = 4096+1596 = 4096+(1024+572) = 4096+1024+(512+60) =
. . . = 4096 + 1024 + 512 + 32 + 16 + 8 + 4 = 1011000111100(2).
Analogamente, se considerarmos as poteˆncias de 3,
38 37 36 35 34 33 32 31 30
6561 2187 729 243 81 27 9 3 1
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 8
podemos verificar que 5692 = 21210211(3). De facto, 5692 = 2 × 2187 + 1318 = 2 × 2187 +
(1× 729 + 589) = 2× 2187 + 1× 729 + (2× 243 + 103) = . . . = 2× 2187 + 1× 729 + 2× 243 +
1× 81 + 2× 9 + 1× 3 + 1 = 21210211(3).
2.1 Sistema de Representac¸a˜o Posicional
Num sistema de numerac¸a˜o de base b usam-se b s´ımbolos diferentes para b d´ıgitos (de 0 a
b− 1). Os nu´meros sa˜o representados por uma sequeˆncia de d´ıgitos.
Os d´ıgitos na base 10 sa˜o 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Os d´ıgitos na base 2 sa˜o 0 e 1, e
normalmente sa˜o designados por bits. Por exemplo,
1011102 = 1× 25 + 0× 24 + 1× 23 + 1× 22 + 1× 21 + 0× 20
Se a = rmb
m + rm−1b
m−1 + . . . + r2b
2 + r1b
1 + r0b
0 com rm 6= 0 e 0 ≤ ri ≤ b − 1 para
0 ≤ i ≤ m enta˜o
a ≡ rm . . . r2r1r0 (b)
e´ a representac¸a˜o de a na base b. Os coeficientes r0, r1, r2, . . . rm chamam-se d´ıgitos de repre-
sentac¸a˜o de a na base b, sendo r0 o d´ıgito menos significativo e rm o d´ıgito mais significativo.
A representac¸a˜o e´ u´nica, o que e´ consequeˆncia da unicidade do quociente e resto da divisa˜o
inteira.
Proposic¸a˜o 1 (divisa˜o euclideana de inteiros) Quaisquer que sejam a ∈ Z e b ∈ Z+ existe
um e um so´ q ∈ Z e um e um so´ r ∈ Z tal que b = aq + r e 0 ≤ r < b.
A q chama-se quociente e a r resto da divisa˜o inteira de a por b, sendo importante a
condic¸a˜o 0 ≤ r < b para garantir a unicidade.
Corola´rio 1.1 Quaisquer que sejam a ∈ Z+ e b ∈ Z+ \ {1}, existem inteiros u´nicos r0, r1,
r2, . . . rm tais que a = rmb
m + rm−1b
m−1 + . . . + r2b
2 + r1b
1 + r0b
0, rm 6= 0 e 0 ≤ ri ≤ b− 1
para 0 ≤ i ≤ m.
Prova: Sejam a e b inteiros com a > 0 e b > 1. Tem-se ou a < b ou a ≥ b.
Se a < b enta˜o a = 0b + a. Portanto, 0 < r0 = a.
Se a ≥ b enta˜o, por definic¸a˜o de divisa˜o inteira, existem q0 e r0 u´nicos tais que a = bq0+r0,
com 0 ≤ r0 < b. Se q0 < b, toma-se r1 = q0 e obtem-se a = r1b + r0. Se q0 ≥ b, enta˜o o
processo repete-se agora para q0. Ou seja, q0 = bq1 + r1, com 0 ≤ r1 < b. Logo,
a = bq0 + r0 = b(bq1 + r1) + r0 = b
2q1 + br1 + r0
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 9
Se q1 < b, toma-se r2 = q0 e obtem-se a = b
2r2+br1+r0. Se q1 ≥ b, enta˜o o processo repete-se
agora para q1, e sucessivamente. O processo termina porque a > q0 > q1 > . . . e qualquer qi
e´ um inteiro na˜o negativo. ut
Esta prova indica um algoritmo para determinac¸a˜o da representac¸a˜o dum inteiro a numa
base b.
Exemplo 4 Tem-se 125(10) = 5
3 = 1000(5) = 2
6 + 25 + 24 + 23 + 22 + 20 = 1111101(2) =
175(8) = 7D(16). De facto,
125 5
0 25 5
r0 0 5 5
r1 0 1
r2
r3
125 2
1 62 2
r0 0 31 2
r1 1 15 2
r2 1 7 2
r3 1 3 2
r4 1 1
r5
r6
125 8
5 15 8
r0 7 1
r1
r2
125 16
13 7
r0
r1
No entanto, quando se conhecem poteˆncias da base, pode ser mais fa´cil determinar a
representac¸a˜o por outro me´todo. Por exemplo, para a base 2,
46(10) = 32(10) + 8(10) + 4(10) + 2(10) = 101110(2)
enquanto se se aplicar o algoritmo dado pela prova anterior teria
46 2
0 23 2
r0 1 11 2
r1 1 5 2
r2 1 2 2
r3 0 1
r4
r5
46(10) = 23× 2 + 0 = (11× 2 + 1)× 2 + 0 = ((5× 2 + 1)× 2 + 1)× 2 + 0
= (((2× 2 + 1)× 2 + 1)× 2 + 1)× 2 + 0
= ((((2 × 1 + 0)× 2 + 1)× 2 + 1)× 2 + 1)× 2 + 0
= 1× 25 + 0× 24 + 1× 23 + 1× 22 + 1× 21 + 0× 20 = 101110(2)
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 10
Pode interessar tambe´m saber qual a representac¸a˜o decimal dum inteiro dado
numa base b. Para a obter, bastara´ aplicar a definic¸a˜o e efectuar os ca´lculos na base 10.
101110(2) = 1× 25 + 0× 24 + 1× 23 + 1× 22 + 1× 21 + 0× 20 = 32 + 8 + 4 + 2 = 46(10)
101110(3) = 1× 35 + 0× 34 + 1× 33 + 1× 32 + 1× 31 + 0× 30 = 162 + 27 + 9 + 3 = 201(10)
Para ale´m da base 2, sa˜o bastante usadas em Computac¸a˜o as bases 8 (octal) e 16 (hexa-
decimal). Os d´ıgitos em octal sa˜o 0, 1, 2, 3, 4, 5, 6 e 7. Embora os restos da divisa˜o por 16
sejam 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,. . . , 15, por convenc¸a˜o, os d´ıgitos em hexadecimal
a partir de 10 sa˜o representados pelas letras maiu´sculas de A a F. Deste modo na˜o havera´
qualquer ambiguidade de representac¸a˜o (por exemplo, fica claro que o hexadecimal 15 designa
o decimal 1×16+5 e F o decimal 15). Os nu´meros representados na base octal sa˜o por vezes
indexados por (o), por exemplo 235(o), e os representados na base hexadecimal por (h), por
exemplo F15A(h).
Designac¸a˜o Base Dı´gitos
Bina´rio 2 0 a 1
Octal 8 (=23) 0 a 7
Hexadecimal 16 (=24) 0 a 9, A, B, C, D, E, F
Decimal 10 0 a 9
Exemplo 5 A sequeˆncia 78412 na˜o pode representar nenhum inteiro na base 4 porque 7, 8 e 4
na˜o sa˜o d´ıgitos base 4. A sequeˆncia 001231 na˜o e´ representac¸a˜o numa base de numerac¸a˜o,
no sentido acima definido, porque teria zeros na˜o significativos. A sequeˆncia 123100 pode
representar um inteiro em qualquer base b superior a 4.
Exerc´ıcio 2.1.1 Converter para bina´rio: 153(10), 153(6), 153(8), 153(16).
Exerc´ıcio 2.1.2 Converter para hexadecimal: 153(10), 151323(10) , 153(8), 1010101111(2) .
Exerc´ıcio 2.1.3 Converter para octal: 1123(4), 151323(10) , 153(8), 1010101111(2) .
Exerc´ıcio 2.1.4 Converter para a base 251 e 666 os seguintes nu´meros em decimal:
1383, 1498, 1500, 1580, 1640
Exerc´ıcio 2.1.5 Represente x, xn e xn − 1 na base x, para x > 1 e n ∈ N.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 11
2.1.1 Relac¸a˜o entre bina´rio, octal e hexadecimal
Seja por exemplo, 101011110(2) um bina´rio que se pretende converter para octal. Como foi
visto, o inteiro que esse bina´rio representa e´
1× 28 + 0× 27 + 1× 26 + 0× 25 + 1× 24 + 1× 23 + 1× 22 + 1× 2 + 0
ou seja 350. A representac¸a˜o octal correspondente pode ser obtida agrupando os d´ıgitos
bina´rios 3 a 3: uma vez que 8 = 23 e 82 = 26, tem-se
26(1×22 +0×2+1×2)+23(0×22 +1×2+1)+(1×22+1×2+0) = 82×5+8×3+6 = 536(2)
Em geral se ak . . . a5a4a3a2a1a0(2), sendo k ≥ 0, representa o inteiro
ak2
k + . . . + a52
5 + a42
4 + a32
3 + a22
2 + a12
1 + a02
0
enta˜o a representac¸a˜o em octal do mesmo inteiro pode ser obtida da forma descrita:
ak2
k + . . . + 23(a52
2 + a42
1 + a32
0) + (a22
2 + a12
1 + a02
0) =
ak2
k + . . . + 8(a52
2 + a42
1 + a32
0) + (a22
2 + a12
1 + a02
0)
Notar que na expressa˜o resultante, qualquer poteˆncia de 8 tem por coeficiente
ai+22
2 + ai+12 + ai
para algum i, o qual e´ sempre na˜o negativo e inferior a 8, podendo assim ser d´ıgito da
representac¸a˜o octal. A cada d´ıgito octal correspondem 3 d´ıgitos em bina´rio. Do mesmo
modo, a cada d´ıgito hexadecimal correspondem 4 d´ıgitos em bina´rio. Assim, para converter
um bina´rio a hexadecimal, agrupam-se os seus d´ıgitos em grupos de 4 (da direita para a
esquerda) correspondendo a cada um desses grupos um d´ıgito hexadecimal. Por exemplo,
101011110(2) ⇒ 1 | 0101 | 1110⇒ 1 | 5 | E ⇒ 15E(h)
Para converter um bina´rio a octal procede-se de modo ideˆntico mas formando grupos de 3.
Por exemplo,
101011110(2) ⇒ 101 | 011 | 110⇒ 5 | 3 | 6⇒ 536(o)
Inversamente, se se pretender converter de hexadecimal a bina´rio basta associar a cada um
dos d´ıgitos hexadecimal o grupo de 4 d´ıgitos bina´rios correspondente. Por exemplo,
3AC3A(h) ⇒ 0011 | 1010 | 1100| 0011 | 1010⇒
11 | 1010 | 1100 | 0011 | 1010⇒ 111010110000111010(2)
Notar a eliminac¸a˜o dos zeros na˜o significativos. O que se acaba de ilustrar e´ um caso particular
da proposic¸a˜o seguinte.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 12
Proposic¸a˜o 2 Se z e´ um inteiro positivo, a cada d´ıgito (com poss´ıvel excepc¸a˜o do mais signi-
ficativo) da representac¸a˜o de z na base bn corresponde um grupo de n d´ıgitos na representac¸a˜o
de z na base b, qualquer que seja n inteiro positivo. Mais concretamente, se
akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0
com k ≥ 0 e´ a representac¸a˜o na base b de um inteiro positivo z enta˜o, a representac¸a˜o do
mesmo inteiro na base bn e´
wtwt−1 . . . w1w0
sendo t+1 o nu´mero de blocos de n d´ıgitos da representac¸a˜o de z na base b (podendo o u´ltimo
ser completado por zeros na˜o significativos), e wi (i ≤ t) o d´ıgito da base bn que representa o
inteiro a2in−1 . . . ain+1ain(b) (representac¸a˜o base b a menos de zeros na˜o significativos).
Exemplo 6 Por exemplo, para converter 100313210(4) para a base 16, agrupam-se os d´ıgitos
2 a 2, da direita para a esquerda, pois 16 = 42.
100313210(4) = 01 | 00 | 31 | 32 | 10 = 10DE4(16)
Exerc´ıcio 2.1.6 Repita os exerc´ıcios 2.1.1 a 2.1.3.
Exerc´ıcio 2.1.7 Mostre a proposic¸a˜o anterior. Comece por mostrar que wtwt−1 . . . w1w0
conforme descrito pode ser representac¸a˜o base bn de z; use em seguida o facto da representac¸a˜o
numa base ser u´nica para concluir que wtwt−1 . . . w1w0 e´ a representac¸a˜o de z. Mostre depois
que se wtwt−1 . . . w1w0 representa z na base b
n, a representac¸a˜o de z na base b e´
akak−1 . . . atnatn−1 . . . a2na2n−1 . . . anan−1 . . . a1a0
2.1.2 Adic¸a˜o e multiplicac¸a˜o na base b
Recorde como se adicionam dois inteiros representados na base 10, calculando por exemplo
987654 + 73561.
987654
+ 73561
. . . 5
(vai 0)
987654
+ 73561
. . . 15
(vai 1)
987654
+ 73561
. . . 215
(vai 1)
987654
+ 73561
. . . 1215
(vai 1)
987654
+ 73561
. . . 61215
(vai 1)
987654
+ 73561
. . . 061215
(vai 1)
987654
+ 73561
1061215
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 13
Algoritmo para Adic¸a˜o (base 10). Se x e y sa˜o inteiros positivos representados na
base 10 por xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente enta˜o a representac¸a˜o na
base 10 de x + y, digamos spsp−1 . . . s1s0, pode ser obtida da forma seguinte.
xkxk−1 . . . x1x0
+ ymym−1ym−2 . . . y1y0
. . . s0
Caso x0 + y0 < 10, toma-se s0 = x0 + y0 e repete-se o processo para os d´ıgitos seguintes.
Sena˜o, s0 e´ tal que x0 + y0 = 1s0, adicionando-se 1 a x1 + y1 repetindo-se o processo (global)
para os d´ıgitos seguintes. Quando k < m (respectivamente m < k) pode-se considerar xi = 0,
i ≥ k (respectivamente yi = 0, i ≥ m). Notar que p = max(k,m) ou p = max(k,m) + 1
sendo neste u´ltimo caso sp = 1.
Adic¸a˜o (base 3). 2102(3) + 21(3) = (2× 33 + 1× 32 + 0× 31 + 2× 30) + (2× 31 + 1× 30) =
2× 33 +1× 32 +(0+2)× 31 +(2 + 1)× 30 = 2× 33 +1× 32 +(0+2)× 31 +(1× 3 + 0)× 30 =
2 × 33 + 1 × 32 + (0 + 2 + 1) × 31 + 0 × 30 = 2 × 33 + (1 + 1) × 32 + 0 × 31 + 0 × 30 =
2× 33 + 2× 32 + 0× 31 + 0× 30.
2102(3)
+ 21(3)
. . . 0(3)
(vai 1)
2102(3)
+ 21(3)
. . . 00(3)
(vai 1)
2102(3)
+ 21(3)
. . . 200(3)
(vai 0)
2102(3)
+ 21(3)
2200(3)
Exerc´ıcio 2.1.8 Justifique que se x e y sa˜o inteiros positivos representados na base b por
xkxk−1 . . . x1x0 e ymym−1 . . . y1y0 respectivamente enta˜o spsp−1 . . . s1s0, a representac¸a˜o na
base b de x+y, pode ser obtida por um processo ana´logo ao descrito acima, ou seja, seguindo
o algoritmo habitual. Comece por notar que quando soma xi com yi o resultado e´ sempre
menor ou igual que 2b − 2, e portanto tanto xi + yi como xi + yi + 1 se representa como
0si ou 1si (pelo que ou “vai 0” ou “vai 1”), qualquer que seja i. Depois, use a definic¸a˜o de
representac¸a˜o na base b, a` semelhanc¸a do que se fez acima para b = 3.
Os algoritmos usuais para adic¸a˜o e multiplicac¸a˜o base 10 sa˜o va´lidos quando se usam
representac¸o˜es em qualquer outra base b, embora sejam obviamente diferentes as tabuadas
dessas operac¸o˜es se escrevermos os resultados na base b. O mesmo se pode dizer para a
subtracc¸a˜o (quando o aditivo e´ maior do que subtractivo) e para a divisa˜o inteira.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 14
Tabuadas de adic¸a˜o e multiplicac¸a˜o para bina´rio:
+2 0 1
0 0 1
1 1 10
×2 0 1
0 0 0
1 0 1
Tabuadas de adic¸a˜o e multiplicac¸a˜o para base 3:
+3 0 1 2
0 0 1 2
1 1 2 10
2 2 10 11
×3 0 1 2
0 0 0 0
1 0 1 2
2 0 2 11
Tabuadas de adic¸a˜o e multiplicac¸a˜o para octal:
+8 0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7 10
2 2 3 4 5 6 7 10 11
3 3 4 5 6 7 10 11 12
4 4 5 6 7 10 11 12 13
5 5 6 7 10 11 12 13 14
6 6 7 10 11 12 13 14 15
7 7 10 11 12 13 14 15 16
×8 0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7
2 0 2 4 6 10 12 14 16
3 0 3 6 11 14 17 22 25
4 0 4 10 14 20 24 30 34
5 0 5 12 17 . . . . . . . . . . . . . . .
6 0 6 . . . . . . . . . . . . . . . . . . . . . . . .
7 0 7 . . . . . . . . . . . . . . . . . . . 61
Exerc´ıcio 2.1.9 Complete a tabuada de multiplicac¸a˜o base 8 e determine as tabelas para a
base hexadecimal.
Assim, por exemplo, 1021(3) × 211(3) = 1000201(3) , ou seja, 34(10) × 22(10) = 748(10),
porque:
1 0 2 1(3)
× 2 1 1(3)
1 0 2 1
1 0 2 1
+ 2 1 1 2
1 0 0 0 2 0 1(3)
3 4(10)
× 2 2(10)
6 8
+ 6 8
7 4 8(10)
A` esquerda, todos os valores interme´dios esta˜o representados na base 3 e a` direita na base 10
(visando recordar o algoritmo da multiplicac¸a˜o e estabelecer a comparac¸a˜o).
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 15
Exerc´ıcio 2.1.10 Calcule:
(i) 1110010(2) + 111001111(2) em bina´rio.
(ii) 1F5(h) + 111001111(2) em hexadecimal.
(iii) 1330(4) + 123(4) em octal.
(iv) 1F5(h) + ABCD(h) + 1FB(h) em hexadecimal.
(v) ABCD(h) − 1FB(h) em hexadecimal.
(vi) 73542(o) × 27(10) em octal.
(vii) 73542(o)/27(10) em octal.
(viii) 111000010(2)/111(2) em bina´rio.
2.1.3 Representac¸a˜o de nu´meros com um nu´mero fixo de d´ıgitos
Num computador cada inteiro e´ representado por um nu´mero fixo de bits. Em 8 bits, 13 seria
representado por 00001101. Isto e´, introduzem-se 0’s a` esquerda sempre que o nu´mero de bits
da representac¸a˜o do inteiro seja menor que o nu´mero de bits que se fixou.
Se n representar o nu´mero de bits que se fixou para a representac¸a˜o, os bits sa˜o numerados
da esquerda para a direita por bitn−1, bitn−2, . . . , bit1 e bit0. O bitn−1 diz-se o bit mais
significativo e bit0 e´ o menos significativo.
Quando se fixa o nu´mero de bits da representac¸a˜o, limita-se tambe´m os valores que podem
ser representados. Se, por exemplo, o nu´mero de bits for 8 enta˜o o maior inteiro positivo que
se pode representar e´:
1 1 1 1 1 1 1 1
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
cujo valor e´
27 × 1 + 26 × 1 + 25 × 1 + 24 × 1 + 23 × 1 + 22 × 1 + 21 × 1 + 20 × 1 = 255 = 28 − 1
Em geral, com n bits podemos representar nu´meros inteiros positivos de 0 a 2n − 1.
Proposic¸a˜o 3 O maior inteiro positivo que se consegue representar na base b com n d´ıgitos
e´ bn − 1.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 16
Prova: Suponhamos que A e´ representado com n d´ıgitos na base b por an−1an−2 . . . a1a0
com ai ∈ {0, . . . , b− 1}. Enta˜o,
A = an−1b
n−1 + an−2b
n−2 . . . a1b
1 + a0b
0 =
n−1∑i=0
aib
i
Ora,
n−1∑
i=0
aib
i ≤
n−1∑
i=0
(b− 1)bi
= (b− 1)
n−1∑
i=0
bi
= (b− 1)b
0 − b× bn−1
1− b (soma de termos de progressa˜o geome´trica)
= (b− 1)1− b
n
1− b
= bn − 1
ut
Observac¸a˜o:
∑n−1
i=0 ui e´ uma notac¸a˜o abreviada para u0 + u1 + · · · + un−1, podendo-se ler
“somato´rio para i desde 0 ate´ n− 1 de ui”.
Exerc´ıcio 2.1.11 Qual e´ o nu´mero mı´nimo de bits necessa´rio para representar 1125? Qual
o valor ma´ximo que pode ser representado com esse nu´mero de bits?
Normalmente o nu´mero de bits usados sa˜o 8, 16, 32 ou 64. Com 8 bits podemos representar
inteiros entre 0 e 255, com 16 bits entre 0 e 65535, com 32 bits entre 0 a 4294967295, etc.
2.1.4 Representac¸a˜o de nu´meros negativos
Para representar nu´meros inteiros positivos e negativos numa base b e com um nu´mero fixo
de d´ıgitos e´ necessa´rio codificar o sinal e encontrar um processo eficiente de determinar se
um nu´mero e´ positivo ou negativo. Normalmente e´ reservado um d´ıgito para indicar o sinal.
Por exemplo, em n d´ıgitos, sendo A = an−1an−2 . . . a1a0(b), se an−1 = 0 enta˜o A e´ positivo,
se an−1 = b− 1 o nu´mero e´ negativo.
Vamos considerar treˆs formas introduzidas para representar nu´meros inteiros positivos e
negativos e que obedecem a` condic¸a˜o de sinal apresentada. Vamos supor que a base e´ 2 e que
o nu´mero de d´ıgitos e´ n, embora os resultados possam ser generalizados para qualquer base b.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 17
Representac¸a˜o com bit de sinal. Reserva-se o bit mais a` esquerda para o sinal e os
restantes para o mo´dulo do nu´mero.
n bits︷ ︸︸ ︷
n−1 n−2 . . . . . . . . 0
sinal mo´dulo
O bit de sinal e´ 0 para os positivos e e´ 1 para os negativos. Assim, um nu´mero positivo
e´ da forma A = 0an−2 . . . a1a0 e um negativo e´ da forma A = 1an−2 . . . a1a0. Com n bits
podemos representar nu´meros positivos de 0 a 2n−1 − 1 e negativos −(2n−1 − 1) a 0.
As representac¸o˜es de dois nu´meros com o mesmo mo´dulo diferem apenas no bit de sinal.
Se n = 3 temos o quadro seguinte:
Valor 0 1 2 3 −0 −1 −2 −3
Representac¸a˜o com bit de sinal 000 001 010 011 100 101 110 111
Podemos observar que zero tem duas representac¸o˜es: +0 e −0. Para efectuar adic¸o˜es
de nu´meros com sinais diferentes e´ necessa´rio primeiro determinar qual e´ o maior e qual o
sinal do resultado. O mesmo problema surge para a subtracc¸a˜o, a qual pode ser tratada como
a adic¸a˜o associando o sinal negativo ao subtraendo, x− y = x + (−y).
Representac¸a˜o em Complemento para 1. A utilizac¸a˜o desta representac¸a˜o para inteiros
apresenta o mesmo problema da anterior, isto e´, zero tera´ duas representac¸o˜es +0 e −0. Para
uma representac¸a˜o em n bits, chama-se complemento para 1 de A ao valor (2n − 1) − A.
O bit mais signficativo da´ indicac¸a˜o sobre o sinal do nu´mero (se for 1, o nu´mero e´ negativo).
O nu´mero negativo −x sera´ representado por (2n − 1) − x. Por exemplo, para n = 3, temos
o quadro seguinte:
Valor +0 +1 +2 +3 −3 −2 −1 −0
Complemento para 1 000 001 010 011 100 101 110 111
Estas representac¸o˜es podem ser obtidas por troca de 1’s por 0’s e 0’s por 1’s na repre-
sentac¸a˜o de x em n bits, o que resulta de 2n− 1 ser representado por n 1’s. Por exemplo, -14
e´ representado em complemento para 1 em 8 bits por:
1 1 1 1 1 1 1 1
− 0 0 0 0 1 1 1 0
1 1 1 1 0 0 0 1
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.1. SISTEMA DE REPRESENTAC¸A˜O POSICIONAL 18
Representac¸a˜o em Complemento para 2. Neste caso, zero tera´ uma so´ representac¸a˜o:
Exactamente metade dos nu´meros representados sa˜o na˜o negativos e a outra metade nu´meros
negativos.
De 0 a 2n−1−1 encontram-se os nu´meros na˜o negativos e de 2n−1 a 2n−1 nu´meros
negativos.
Para os positivos a representac¸a˜o coincide com a representac¸a˜o anterior. Os nu´meros nega-
tivos sa˜o complementos para a base. Por definic¸a˜o, o complemento para 2 de A numa
representac¸a˜o de n bits e´ o inteiro 2n −A.
Exemplo 7 Para n = 3 enta˜o -1 e´ representado por 111 pois 23 − 1 = 7. Se n = 8, o
inteiro -1 e´ representado por 11111111 em complemento para 2. Nnuma representac¸a˜o em 8
bits usando complemento para 2 o inteiro −3 e´ o bina´rio correspondente a 28 − 3, ou seja
253 = 11111101.
Em resumo, temos o quadro seguinte para n = 3:
Valor 0 +1 +2 +3 −4 −3 −2 −1
Complemento para 2 000 001 010 011 100 101 110 111
Usando a definic¸a˜o de complemento para 2, pode-se concluir que 2n−1 representa −2n−1
pois 2n − 2n−1 = 2n−1. Por outro lado, 2n − 1 representa −1.
Proposic¸a˜o 4 No sistema de representac¸a˜o com n bits e complemento para 2 os valores
poss´ıveis dos inteiros representa´veis variam de −2n−1 a 2n−1 − 1. De 0 a 2n−1 − 1 tem-se
nu´meros na˜o negativos e de 2n−1 a 2n − 1 nu´meros negativos.
Para ale´m de so´ haver um zero, neste caso todos os negativos teˆm 1 como bit mais
significativo, o qual funciona assim como bit de sinal. As adic¸o˜es podem ser efectuadas
sem analisar o sinal dos operandos e nas subtracc¸o˜es basta calcular o complemento para 2 do
subtraendo e adicionar o valor resultante ao subtractivo, como se vera´ adiante.
Para determinar representac¸a˜o em complemento para 2 dum nu´mero e´ u´til observar
a sua relac¸a˜o com a representac¸a˜o em complemento para 1.
Como 2n −A = (2n − 1−A) + 1 e 2n − 1−A e´ a representac¸a˜o em complemento para 1,
podemos obter a representac¸a˜o em complemento para 2 complementando todos os d´ıgitos
de A (isto e´ trocando os uns com os zeros e os zeros com os uns) e adicionando depois uma
unidade.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.2. ADIC¸A˜O E SUBTRACC¸A˜O EM N BITS 19
Exemplo 8 Para determinar a representac¸a˜o de -17 em complemento para 2 em 8 bits,
toma-se 00010001, troca-se 0’s por 1’s, obtendo 11101110, e soma-se 1, resultando 11101111.
Inversamente, se se pretender determinar o valor (em decimal) do inteiro que e´ dado em
complemento para 2 por A = an−1an−2 . . . a1a0, basta considerar que a parcela an−12
n−1 e´
negativa. Por exemplo,
110(2) = 1× (−22) + 1× 21 + 0× 20 = −4 + 2 + 0 = −2(10)
Exerc´ıcio 2.1.12 Represente em complemento para 2 e com 8 bits os nu´meros inteiros se-
guintes:
(i) 25, -25, 41, 56, 19, -31, -87;
(ii) a soma dos anteriores e verifique se o resultado de somar as representac¸o˜es esta´ correcto.
Exerc´ıcio 2.1.13 Suponha que a representac¸a˜o em complemento para dois com 4 d´ıgitos de
um inteiro e´ 1101. Como e´ a representac¸a˜o com:
(i) 6 d´ıgitos
(ii) 8 d´ıgitos
(iii) n d´ıgitos, com n ≥ 4.
Exerc´ıcio 2.1.14 Suponha agora que, em 4 d´ıgitos, a representac¸a˜o em complemento para
dois e´ 0101. Como responderia a`s al´ıneas anteriores? Em geral, dado um inteiro x represen-
tado em n d´ıgitos como procederia para obter a sua representac¸a˜o com mais d´ıgitos?
2.2 Adic¸a˜o e Subtracc¸a˜o em n Bits
2.2.1 Adic¸a˜o e subtracc¸a˜o bina´ria de inteiros na˜o negativos
• Adic¸a˜o: Segue o algoritmo habitual de adic¸a˜o bina´ria; se se tiver uma representac¸a˜o de
m bits e a soma for superior a 2m − 1 (o maior inteiro positivo com m bits) diz-se que
ha´ transporte (carry); Por exemplo: a soma em 8-bits dos inteiros positivos 10010000
e 11111101 e´ 10001101, o que esta´ errado (tem transporte 1).
• Subtracc¸a˜o: Segue algoritmo habitual de subtracc¸a˜o bina´ria; se o valor da diferenc¸a for
inferior a zero, diz-se que ha´ transporte (borrow); Por exemplo: a diferenc¸a em 8-bits
10010000 − 11111101 = 10010011 o que esta´ errado (tem transporte 1).
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.2. ADIC¸A˜O E SUBTRACC¸A˜O EM N BITS 20
2.2.2 Adic¸a˜o de inteiros em complemento para 2
Se os inteiros sa˜o na˜o negativos, a soma e´ calculada pelo algoritmo habitual. Sea repre-
sentac¸a˜o tiver m bits e a soma for superior a 2m−1 − 1 (o maior inteiro positivo com m bits
num sistema de complemento para 2) diz-se que ha´ overflow, sendo indicac¸a˜o de que o valor
obtido esta´ errado.
Por exemplo: a soma em 8-bits e complemento para 2 de 01111111 com 00000001 e´
10000000 ou seja, a soma de +127 com +1 e´ −128(!). Neste caso, ha´ overflow.
Se os inteiros sa˜o ambos negativos (em complemento para 2) a soma e´ calculada pelo
algoritmo habitual ”desprezando-se”o transporte. Se se usa uma representac¸a˜o em m bits,
o ”desprezar”o transporte corresponde a subtrair ao resultado obtido 2m. Basta notar que
quando se efectua (−x) + (−y) se pretende obter o complemento para 2 de x + y, isto e´
2m− (x + y). A relac¸a˜o desse nu´mero com os complementos para 2 de x e y e´ 2m− (x + y) =
(2m − x) + (2m − y) − 2m. Ou seja, para obter a representac¸a˜o em complemento para 2 de
(−x) + (−y) adicionam-se as representac¸o˜es de (−x) e (−y) e subtrai-se 2m.
Se a representac¸a˜o tiver m bits e a soma for inferior a −2m−1 (o menor inteiro negativo
com m bits num sistema de complemento para 2) diz-se que ha´ underflow, sendo indicac¸a˜o
de que o valor obtido esta´ errado.
Por exemplo: a soma em 8-bits e complemento para 2 de 10000000 com 11111111 seria
01111111 ou seja, −128 + (−1) = +127 (!). Neste caso, ha´ underflow.
Analogamente, a soma dum inteiro positivo com um inteiro negativo e´ o bina´rio correspon-
dente a` adic¸a˜o das representac¸o˜es dos operandos, ”desprezando-se”o transporte se o houver.
Na˜o havera´ overflow nem underflow.
2.2.3 Subtracc¸a˜o de inteiros em complemento para 2
A subtracc¸a˜o bina´ria de inteiros representados em complemento para 2 pode-se reduzir a`
adic¸a˜o de inteiros.
Exemplos
(-x)-(-y) = (-x)+y 10010000-11111101=10010000+00000011=10010011
(-x)-y=(-x)+(-y) 10010000-00000011=10010000+11111101=10001101
y-(-x)=y+x 00000011-10010000=00000011+ 01110000=01110011
y-x=y+(-x) 00000011-00010000=00000011+11110000=11110011
Exerc´ıcio 2.2.1 Quais das seguintes somas esta˜o correctas (se truncadas a 8 bits) caso as
representac¸o˜es indicadas sejam representac¸o˜es em complemento para 2 e caso sejam repre-
sentac¸o˜es so´ para inteiros na˜o negativos?
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.3. REPRESENTAC¸A˜O EM VI´RGULA FIXA 21
negativos negativo e positivo positivos
10010000
+ 11111101
1 10001101
00010000
+ 11111111
1 00001111
00010000
+ 00111101
0 01001101
positivos negativos
01111010
+ 01110001
0 11101011 < 0
10000110
+ 10001111
1 00010101 > 0
overflow underflow
2.3 Representac¸a˜o em Vı´rgula Fixa
A representac¸a˜o posicional de inteiros pode ser generalizada para representar nu´meros racio-
nais considerando-se poteˆncias negativas da base. Por exemplo, na base 10:
344.45 = 3× 102 + 4× 101 + 4× 100 + 4× 10−1 + 5× 10−2
Podemos ainda escrever:
344.45 = 34445. × 10−2 = (3× 104 + 4× 103 + 4× 102 + 4× 101 + 5× 100)× 10−2
Se se fixar a posic¸a˜o da v´ırgula (neste caso o factor e´ 10−2), o nu´mero pode ser tratado
como um inteiro. Assim as operac¸o˜es com nu´meros racionais podem ser feitas internamente
como operac¸o˜es com inteiros, desde que os factores de ajuste sejam guardados para que o
resultado final seja correctamente calculado.
Note-se em particular que as representac¸o˜es de inteiros em computadores estudadas anteri-
ormente sa˜o representac¸o˜es em v´ırgula fixa, com a v´ırgula a` direita do bit menos significativo.
No caso geral, os ajustes da posic¸a˜o da v´ırgula e o seu armazenamento ficara˜o a cargo do
programador.
Contudo, actualmente, a representac¸a˜o em computadores dos nu´meros racionais e´ feita,
geralmente, em v´ırgula flutuante.
2.4 Representac¸a˜o em Vı´rgula Flutuante
A representac¸a˜o dum nu´mero racional em v´ırgula flutuante, contrariamente a` representac¸a˜o
em v´ırgula fixa, e´ feita atrave´s de um par de inteiros que representam respectivamente a
mantissa m e o expoente e de forma que para uma determinada base b, o seu valor e´:
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
2.4. REPRESENTAC¸A˜O EM VI´RGULA FLUTUANTE 22
F = m× be
Por exemplo, 673 × 1014.
A designac¸a˜o v´ırgula flutuante resulta do facto de que a posic¸a˜o da v´ırgula depender do
expoente e portanto na˜o ser fixada previamente.
A notac¸a˜o mais usada para v´ırgula flutuante e´ a do IEEE (Institute of Electrical and
Electronics Engineers). A base e´ a bina´ria. Em precisa˜o simples cada nu´mero e´ representado
com 32 bits:
S E (8 bits) M (23 bits)
O sinal da mantissa e´ representado pelo bit S, que por questo˜es de eficieˆncia e´ separado
da representac¸a˜o do mo´dulo da mantissa o qual e´ constitu´ıdo pelos 23 bits mais a` direita. O
valor do mo´dulo da mantissa e´ normalmente dado por 1.M(2), isto e´, 1 mais o valor de M
considerado como nu´mero racional bina´rio, com a v´ırgula a` esquerda do bit mais significativo.
Os oito bits restantes sa˜o interpretados como um inteiro positivo E e representam o expoente
cujo valor e´ E − 127. O valor representado e´
F = (−1)S(2E−127)(1.M)(2)
excepto se E for 0000000 enta˜o F = (−1)S(2−127)(.M(2)) e se M tambe´m e´ zero enta˜o F = 0.
A sequeˆncia 1 10000111 10100000000000000000000 representaria um nu´mero negativo,
dado que S = 1. Como 10000111(2) = 135(10), o expoente e´ 135 − 127 = 8; e o mo´dulo da
mantissa e´
1 + 0.101(2) = 1 + 1× 2−1 + 1× 2−3 = 1 + (5/8) = 1 + 0.625 = 1.625
O valor representado e´ −28 × 1.625 = −416.
Existem outras representac¸o˜es em v´ırgula flutuante IEEE, como a precisa˜o dupla em que
sa˜o usados 64 bits e a qua´drupla em que sa˜o usados 128 bits.
Exerc´ıcio 2.4.1 Determine qual o maior nu´mero que e´ representa´vel em precisa˜o simples,
segunda a norma do IEEE.
Exerc´ıcio 2.4.2 Indique o valor das seguintes representac¸o˜es em precisa˜o simples segunda a
norma do IEEE:
(i) 0 01110101 01010100000000000000000000
(ii) 1 00101010 11100000000000000000000000
Exerc´ıcio 2.4.3 Exprima o mais exactamente poss´ıvel os seguintes nu´meros em precisa˜o
simples IEEE: 2.5, .0005, 2−40 e 256
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
Cap´ıtulo 3
Algumas Noc¸o˜es de Divisibilidade
Por definic¸a˜o, um inteiro a e´ divis´ıvel por um inteiro b se e so´ se a = bq para algum inteiro q.
Nesse caso, escreve-se b | a, lendo-se b divide a. Tambe´m se diz que b e´ divisor de a e
que a e´ mu´ltiplo de b. O inteiro q e´ o quociente da divisa˜o inteira de a por b. Atendendo
a` definic¸a˜o de divisor, se a = bq enta˜o tanto b como q sa˜o divisores de a. Por exemplo, os
divisores positivos de 30 sa˜o 1, 2, 3, 5, 6, 10, 15 e 30, encontrando-se emparelhados.
1 302 15
3 10
5 6
Na procura de divisores de a, para a positivo, na˜o e´ necessa´rio ultrapassar
√
a, pois qualquer
divisor que seja superior a
√
a tera´ que emparelhar com algum divisor que e´ inferior a
√
a.
3.1 Bases de Numerac¸a˜o e Crite´rios de Divisibilidade
E´ conhecido que, um inteiro positivo representado na base 10 e´ divis´ıvel por 100 se e so´ se a
sua representac¸a˜o terminar por 00 (pois os restos da divisa˜o por 10 e 102 sa˜o 0). E´ divis´ıvel
por 1000 sse tal representac¸a˜o terminar em 000. De modo ana´logo se pode concluir que um
inteiro (positivo) representado na base 2 e´ divis´ıvel por 4 (isto e´, por 22) se a sua representac¸a˜o
em bina´rio terminar por 00 e e´ divis´ıvel por 8 (isto e´, por 23) sse terminar em 000.
Proposic¸a˜o 5 Um inteiro (positivo) x representado numa certa base b e´ divis´ıvel por bk,
sendo k inteiro positivo fixo, se e so´ a representac¸a˜o de x na base b terminar por k zeros.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
3.1. BASES DE NUMERAC¸A˜O E CRITE´RIOS DE DIVISIBILIDADE 24
Ideia da prova: Para que xseja divis´ıvel por bk enta˜o tera´ que ser divis´ıvel tambe´m por
b1, b2, . . . , bk−1, o que quer dizer que se efectuar k diviso˜es sucessivas por b tera´ k restos 0.
Ou seja, x = b(x/b) + 0. Depois, k > 1, tambe´m (x/b) = b((x/b)/b) + 0, . . . ut
Analisando a definic¸a˜o de representac¸a˜o base 10, podemos justificar o seguinte crite´rio de
divisibilidade por 9.
Proposic¸a˜o 6 Um inteiro e´ divis´ıvel por 9 sse a soma dos d´ıgitos da sua representac¸a˜o na
base 10 for divis´ıvel por 9.
Prova: Seja x um inteiro (positivo) qualquer e suponhamos que a sua representac¸a˜o
base 10 e´ anan−1 . . . a1a0. Isto quer dizer que,
x = an × 10n + an−1 × 10n−1 + · · ·+ a1 × 10 + a0
Como
10 = 9 + 1 um mu´ltiplo de 9 mais uma unidade
100 = 99 + 1 um mu´ltiplo de 9 mais uma unidade
1000 = 999 + 1 um mu´ltiplo de 9 mais uma unidade
...
10n = 99 . . . 9︸ ︷︷ ︸
9 repetido n vezes
+1 um mu´ltiplo de 9 mais uma unidade
enta˜o x = (9˙ + 1)× an + (9˙ + 1)× an−1 + · · ·+ (9˙ + 1)× a1 + a0, ou seja
x = 9˙ + (an + an−1 + · · ·+ a1 + a0)
em que 9˙ e´ abreviatura de “um mu´ltiplo de 9” (nesta igualdade, cada ocorreˆncia de 9˙ designa
um mu´ltiplo diferente). Na “simplificac¸a˜o” da igualdade, usa´mos tambe´m o facto da soma
de mu´ltiplos de 9 ser um mu´ltiplo de 9 e do produto dum nu´mero qualquer por um mu´ltiplo
de 9 ser um mu´ltiplo de 9. Observando que x = 9˙ + (an + an−1 + · · · + a1 + a0), concluimos
que x e´ mu´ltiplo de 9˙ se e so´ se an + an−1 + · · ·+ a1 + a0 for mu´ltiplo de 9˙. ut
O exerc´ıcio seguinte pode ser resolvido por aplicac¸a˜o dum racioc´ınio ana´logo, agora obser-
vando que 10 = 1˙1−1, 100 = 1˙1+1, 1000 = 1˙1−1, 1000 = 1000×10 = (1˙1−1)(1˙1−1) = 1˙1+1,
10000 = (1˙1 + 1)× 10 = 1˙1− 1, . . .
Exerc´ıcio 3.1.1 Mostre que um inteiro e´ divis´ıvel por 11 sse a soma dos d´ıgitos de ordem
par da sua representac¸a˜o na base 10 for igual a` soma dos d´ıgitos de ordem ı´mpar.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
3.2. NOC¸A˜O DE DIVISOR E DE MU´LTIPLO 25
Exerc´ıcio 3.1.2 Mostre que um inteiro
(i) e´ divis´ıvel por 5 sse a sua representac¸a˜o decimal terminar em 0 ou 5;
(ii) e´ divis´ıvel por 3 sse a soma dos d´ıgitos da sua representac¸a˜o decimal for divis´ıvel por 3.
(iii) e´ divis´ıvel por 2 sse o d´ıgito menos significativo da sua representac¸a˜o decimal for par.
3.2 Noc¸a˜o de Divisor e de Mu´ltiplo
O conjunto1 dos divisores dum inteiro a e´ constitu´ıdo por todos os inteiros positivos tais que
se b | a e os seus sime´tricos.
{divisores de a} = {b : b ∈ Z e b divide a}
Frequentemente, o termo divisor e´ usado para referir divisor positivo.
O conjunto dos mu´ltiplos de b e´ constitu´ıdo pelos inteiros da forma bz para z inteiro, ou
seja
{mu´ltiplos de b} = {bz : z ∈ Z}.
Para mostrar formalmente o resultado seguinte basta usar a definic¸a˜o de mu´ltiplo e de
divisor que acaba´mos de apresentar. Este resultado foi utilizado na secc¸a˜o anterior, devendo
ser bem conhecido.
Proposic¸a˜o 7 A soma, a diferenc¸a e o produto de dois mu´ltiplos de b e´ um mu´ltiplo de b.
O produto dum mu´ltiplo de b por qualquer inteiro e´ um mu´ltiplo de b.
Prova: Sejam m1 e m2 mu´ltiplos de b. Enta˜o existem inteiros z1 e z2 tais que m1 = bz1
e m2 = bz2. Logo, m1 + m2 = bz1 + bz2 = b(z1 + z2) e como a soma de inteiros e´ um inteiro,
conclui-se que z1+z2 ∈ Z, pelo que m1+m2 e´ da forma bz, para algum z ∈ Z (concretamente,
para z = z1 + z2). Portanto, a soma de mu´ltiplos de b e´ mu´ltiplo de b.
Para mostrar que a diferenc¸a de dois mu´ltiplos de b (isto e´, m1 − m2) e´ mu´ltiplo de b
procede-se analogamente.
Para mostrar que m1m2 e´ mu´ltiplo de b, isto e´, que o produto de dois mu´ltiplos de b e´
mu´ltiplo de b, observe-se que m1m2 = (bz1)(bz2) = b(bz1z2) e como bz1z2 ∈ Z, conclui-se que
m1m2 e´ produto de b por um inteiro, ou seja, e´ mu´ltiplo de b.
Do mesmo modo, para concluir que o produto dum mu´ltiplo de b (por exemplo, m1) por
um qualquer inteiro x e´ mu´ltiplo de b, basta notar que m1x = (bz1)x = b(z1x) e z1x ∈ Z. ut
1E´ usual representar “o conjunto dos x’s tais que x satisfaz condic¸a˜o. . . ” por {x | x satisfaz condic¸a˜o . . . }.
Neste cap´ıtulo, usaremos a notac¸a˜o alternativa {x : x satisfaz condic¸a˜o . . . }, para evitar usar | com duplo
significado, reservando | para “divide”.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
3.3. FACTORIZAC¸A˜O EM PRIMOS 26
Exerc´ıcio 3.2.1 Mostrar que quaisquer que sejam x, y e z inteiros, se x dividir y e dividir
y + z enta˜o tambe´m divide z.
3.3 Factorizac¸a˜o em Primos
Um nu´mero p e´ primo se e so´ se tem exactamente quatro divisores (inteiros), nomeadamente,
p, −p, 1 e −1. Assim, um nu´mero e´ primo se e so´ se tem exactamente dois divisores positivos.
Proposic¸a˜o 8 Qualquer inteiro maior do que 1 e´ ou primo ou produto de primos.
Prova: Pela definic¸a˜o de primo, tem-se 2 e´ primo.
Seja x ∈ N tal que x > 2. Suponhamos que ja´ mostra´mos que todo y ∈ N tal que 2 ≤ y < x
e´ ou primo ou produto de primos. Vamos mostrar que enta˜o tambe´m podemos concluir que
x e´ primo ou produto de primos. De facto, se x na˜o for primo, existem x1, x2 ∈ N \ {0, 1}
tais que x = x1x2. Como 2 ≤ x1 < x e 2 ≤ x2 < x, sabemos ja´ que x1 e´ primo ou produto de
primos e x2 e´ primo ou produto de primos.
Analisando os quatro casos (a) x1 e x2 primos, (b) x1 e x2 produtos de primos, (c) x1
primo e x2 produto de primos, e (d) x1 produto de primos e x2 primo, concluimos que se
x = x1x2 enta˜o x pode escrever-se como produto de primos. Logo, se x na˜o e´ primo enta˜o x
e´ um produto de primos, ou seja, x e´ primo ou produto de primos. ut
A te´cnica utilizada na prova anterior designa-se por induc¸a˜o matema´tica. Como
hipo´tese de induc¸a˜o supusemos que ja´ se tinha mostrado que todo y ∈ N tal que 2 ≤ y < x ou
e´ primo ou e´ produto de primos. Como x esta´ fixo (e e´ finito), essa prova pode ser realmente
reconstru´ıda. Por exemplo, se x fosse 24, estariamos a assumir que ja´ tinhamos verificado que
2, 3, 5, 7, 11, 13, 17, 19 e 23 sa˜o primos e que 4 = 2× 2, 6 = 2× 3, 8 = 2× 2× 2, 9 = 3× 3,
10 = 2 × 5, 12 = 2 × 2 × 3, 14 = 2 × 7, 15 = 3 × 5, 16 = 2 × 2 × 2 × 2, 18 = 2 × 3 × 3,
20 = 2 × 2 × 5, 21 = 3 × 7 e 22 = 2 × 11. Como 24 na˜o e´ primo porque, por exemplo,
24 = 4× 6, enta˜o podemos concluir que e´ produto de primos, por substituic¸a˜o de 4 e 6 (que
correspondem a x1 e x2) pelas suas factorizac¸o˜es em primos: 24 = (2× 2)× (2× 3).
Usualmente, escreve-se 24 = 23 × 3, sendo esta a factorizac¸a˜o de 24 primos. Em geral,
para qualquer nu´mero natural n na˜o inferior a 2, existem primos p1, . . . pk u´nicos e tal que n
se pode factorizar de forma u´nica como pα11 × · · · × pαkk sendo αi 6= 0 e pi < pj se i < j, para
todo i ≤ k e todo j ≤ k. Por exemplo, 37268 = 22 × 71 × 113 e 500 = 22 × 53.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
3.3. FACTORIZAC¸A˜O EM PRIMOS 27
Corola´rio 8.1 Seja x um inteiro tal que x ≥ 2 e x na˜o e´ primo. A factorizac¸a˜o de x em
primos e´ u´nica, a menos de reordenac¸a˜o dos factores.
Ideia da prova: Ana´loga a` anterior, supondo como hipo´tese ja´ se provou que todo
y ∈ N tal que 2 ≤ y < x ou e´ primo ou se escreve de forma u´nica como produto de primos (a
menos de reordenac¸a˜o de factores). ut
Corola´rio 8.2 Qualquer inteiro maior do que 1 que na˜o e´ primo e´ divis´ıvel por algum primo.
Prova: Seja x um inteiro qualquer maior do que 1. Se x na˜o e´ primo enta˜o x e´ produto
de primos. Consequentemente, algum primo e´ seu divisor. ut
Proposic¸a˜o 9 O conjunto dos inteiros na˜o negativos que sa˜o primos e´ infinito.
Prova: Suponhamos que so´ existiam n primos, sendo n um certo inteiro fixo. Ou seja,
suponhamos que o conjunto dos primos era finito e que tinha exactamente n elementos, os
quais vamos denotar por p1, p2, . . . , pn. Enta˜o, o inteiropositivo
1 +
n∏
i=1
pi
na˜o seria primo, ja´ que e´ maior do que qualquer um dos primos p1, p2, . . . , pn.
Mas se 1 + p1p2 . . . pn na˜o e´ primo, enta˜o algum dos primos o divide (ou seja, e´ mu´ltiplo
de algum dos primos). Suponhamos que pk divide 1 + p1p2 · · · pn, sendo k um inteiro fixo,
1 ≤ k ≤ n. Como pk divide
∏n
i=1 pi isto e´, pk divide o produto 1+p1p2 · · · pn, pode-se concluir
que se pk dividir 1 + p1p2 · · · pn enta˜o pk divide 1. Mas nenhum primo divide 1. O absurdo
resultou de se ter suposto que o conjunto dos primos era finito. Logo, o conjunto dos primos
e´ infinito. ut
3.3.1 Determinac¸a˜o de primos: crivo de Erasto´tenes
Descreve-se a seguir um algoritmo para determinac¸a˜o de todos os primos na˜o superiores a
um nu´mero n dado. Tal algoritmo e´ conhecido como me´todo do crivo. Parte-se duma tabela
contendo todos os nu´meros na˜o superiores n. O algoritmo resume-se a seleccionar o menor
inteiro na tabela (ainda na˜o seleccionado) e apagar todos os seus mu´ltiplos ate´ todos os valores
estarem ou seleccionados ou apagados.
2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
2 3 5 7 9
11 13 15 17 19
21 23 25 27 29
31 33 35 37 39
41 43 45 47 49
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
3.4. MA´XIMO DIVISOR COMUM 28
2 3 5 7 9
11 13 15 17 19
21 23 25 27 29
31 33 35 37 39
41 43 45 47 49
2 3 5 7
11 13 17 19
23 25 29
31 35 37
41 43 47 49
2 3 5 7
11 13 17 19
23 29
31 37
41 43 47 49
2 3 5 7
11 13 17 19
23 29
31 37
41 43 47
O processo continua . . . Os valores que ficarem na tabela sa˜o os primos, neste caso, na˜o
superiores a 50 (o valor de n neste exemplo).
3.3.2 Ca´lculo de divisores por ana´lise da factorizac¸a˜o em primos
A partir da factorizac¸a˜o dum nu´mero em primos e´ poss´ıvel determinar todos os seus divisores.
Por exemplo, os divisores de 30, que e´ dado por
30 = 21 × 31 × 51
sa˜o:
20 × 30 × 50 = 1 21 × 30 × 50 = 2 20 × 31 × 50 = 3
20 × 30 × 51 = 5 21 × 31 × 50 = 6 21 × 30 × 51 = 10
20 × 31 × 51 = 15 21 × 31 × 51 = 30
Em geral, se pα11 · · · pαkk for a decomposic¸a˜o de x em primos enta˜o o conjunto dos divisores
positivos de x e´
{pβ11 · · · pβkk : 0 ≤ βi ≤ αi para i = 1, . . . , k}
concluindo-se que o nu´mero de divisores de pα11 · · · pαkk e´
∏k
i=1(αi + 1).
3.4 Ma´ximo Divisor Comum
Sabemos que 1 e´ divisor de qualquer inteiro e que o maior divisor de qualquer inteiro positivo x
e´ o pro´prio x. Dados inteiros positivos a e b, podemos falar do seu ma´ximo divisor comum,
o qual representamos por mdc(a, b). O ma´ximo divisor comum e´ o maior dos divisores comuns:
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
3.4. MA´XIMO DIVISOR COMUM 29
d e´ mdc(a, b) sse d | a, d | b e d′ | d qualquer que seja d′ tal que d′ | a e d′ | b. Por definic¸a˜o de
mdc(a, b), cada divisor comum de a e b e´ divisor de mdc(a, b).
Por exemplo, por ana´lise da decomposic¸a˜o de 30 e 500 em primos, 30 = 2 × 3 × 5 e
500 = 22 × 53, podemos concluir que mdc(30, 500) = 10.
Dois inteiros a e b chamam-se primos entre si se e so´ se mdc(a, b) = 1.
Proposic¸a˜o 10 Os inteiros a/mdc(a, b) e b/mdc(a, b) sa˜o primos entre si.
Prova: Queremos mostrar que mdc( a
mdc(a,b) ,
b
mdc(a,b) ) = 1. Para isso vamos provar que
se mdc( a
mdc(a,b) ,
b
mdc(a,b) ) = d enta˜o mdc(a, b)d tambe´m divide a e b. Podemos depois concluir
que necessariamente d = 1 pois se d fosse maior do que 1 enta˜o mdc(a, b)d > mdc(a, b),
mdc(a, b)d seria um divisor comum a a e b, maior do que o ma´ximo divisor comum, o que,
por definic¸a˜o de mdc(a, b) e´ imposs´ıvel. Para completar os detalhes da prova, resta mostrar
que mdc(a, b)d e´ divisor de a e de b se d | a
mdc(a,b) e d | bmdc(a,b) . De facto, basta notar que:
a = mdc(a, b)
a
mdc(a, b)
= mdc(a, b)d
a
mdc(a, b)d
e
b = mdc(a, b)
b
mdc(a, b)
= mdc(a, b)d
b
mdc(a, b)d
.
ut
Tem-se mdc(320×57×1127×312, 24×36×525) = 36×57, porque o ma´ximo divisor comum
e´ dado por
2min(0,4) × 3min(20,6) × 5min(7,25) × 11min(27,0) × 31min(2,0)
ou seja, por 203657110310. Este me´todo pode ser sempre aplicado se forem conhecidas as
factorizac¸o˜es dos nu´meros a e b. Quando na˜o se conhecem, o algoritmo de Euclides
permite calcular mdc(a, b) eficientemente.
3.4.1 Ca´lculo do ma´ximo divisor comum pelo algoritmo de Euclides
A correcc¸a˜o do algoritmo de Euclides para ca´lculo do mdc(a, b) decorre do seguinte resultado.
Lema 1 Sejam a e b inteiros positivos tais que a < b e seja r o resto da divisa˜o de a por b.
Enta˜o, mdc(a, b) = mdc(b, r).
Prova: Represente-se por d o ma´ximo divisor comum de a e b. Por definic¸a˜o de divisa˜o
inteira, r e´ o resto da divisa˜o de a por b sse 0 ≤ r < b e a = bq + r para algum q ∈ Z. Por
outro lado, por definic¸a˜o de ma´ximo divisor comum, d|a e d|b. Portanto, d|(a− bq). Ou seja,
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
3.4. MA´XIMO DIVISOR COMUM 30
d|r. Logo, d e´ um divisor comum de b e r. Seja d′ um outro divisor comum de b e de r.
Resta-nos mostrar que d′ tera´ que dividir d para poder concluir que d e´ mdc(b, r). Para isso,
basta notar que se d′|b e d′|r enta˜o d′|(bq + r) e portanto d′|a. Logo, d′ e´ um divisor comum
a a e b, e portanto d′|mdc(a, b), isto e´, d′|d. ut
Algoritmo de Euclides para determinac¸a˜o de mdc(a, b). Sendo a e b inteiros positivos,
podemos definir mdc(a, b) recursivamente por
mdc(a, 0) = a se a > 0
mdc(a, b) = mdc(b, a%b) se a > b > 0
mdc(a, b) = mdc(b, a) se a < b
em que a%b denota o resto da divisa˜o de a por b.
Por exemplo, mdc(30, 500) = mdc(500, 30) = mdc(30, 500%30) = mdc(30, 20) = mdc(20, 10) =
mdc(10, 0) = 10.
500 30
20 16
30 20
10 1
20 10
0 2
Observe-se que mdc(500, 30) = 17× 30− 1× 500 ja´ que
10 = 30 − 1× 20 = 30− (500 − 16× 30) = 17 × 30 − 1× 500
ou seja, mdc(500, 30) pode-se escrever na forma 500x + 30y para x, y ∈ Z apropriados.
Lema 2 Quaisquer que sejam a, b ∈ Z+, existem inteiros x e y tais que ax + by = mdc(a, b),
ou seja, mdc(a, b) e´ combinac¸a˜o linear inteira de a e b.
Para escrever mdc(100, 17) (isto e´, 1) como combinac¸a˜o de 100 e 17, observe-se que:
100 17
15 5
17 15
2 1
15 2
1 7
2 1
0 2
Efectuando ana´lise para tra´s, substituindo sucessivamente os restos de forma a conseguir
fazer aparecer 100 e 17 (a e b iniciais) obtem-se a combinac¸a˜o procurada: 1 = 15 − 7 × 2 =
15− 7(17 − 1× 15) = 8× 15− 7× 17 = 8(100 − 5× 17)− 7× 17 = 8× 100− 47× 17.
Proposic¸a˜o 11 Sendo a, b e c constantes inteiras, a equac¸a˜o ax + by = c com x, y ∈ Z, tem
soluc¸a˜o se e so´ se mdc(a, b) | c.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
3.5. MI´NIMO MU´LTIPLO COMUM 31
Prova: Como mdc(a, b) divide a e divide b, tambe´m divide ax + by quaisquer que sejam
x, y ∈ Z. Portanto, para que ax + by = c tenha soluc¸a˜o e´ necessa´rio que mdc(a, b) divida c.
Por outro lado, usando o facto de mdc(a, b) se poder escrever como combinac¸a˜o inteira
de a e de b, temos mdc(a, b) = ama + bmb para ma e mb inteiros adequados. Se mdc(a, b) | c,
enta˜o c = mdc(a, b) c
mdc(a,b) e
c
mdc(a,b) ∈ Z. Multiplicando mdc(a, b) = ama + bmb por cmdc(a,b)
obtem-se mdc(a, b) c
mdc(a,b) = a(ma
c
mdc(a,b) ) + b(mb
c
mdc(a,b) ). Assim, vemos que se tomarmos
x = ma
c
mdc(a,b) e y = mb
c
mdc(a,b) temos uma soluc¸a˜o inteira de ax + by = c. ut
Pode-se provar que (x, y) ∈ Z2 e´ soluc¸a˜o de ax + by = c sse x = ma cmdc(a,b) + k bmdc(a,b) e
y = mb
c
mdc(a,b) − k bmdc(a,b) , com k ∈ Z qualquer.
3.5 Mı´nimo Mu´ltiplo Comum
Dados inteiros positivos a e b sabemos que ab e´ um mu´ltiplo de a e de b, fazendo sentido
determinar o menor inteiro positivo que e´ mu´ltiplocomum a a e b, ou seja o mı´nimo mu´ltiplo
comum, mmc(a, b). Por definic¸a˜o m e´ mmc(a, b) sse a |m, b |m e m |m′ para todo m′ tal
que a |m′ e b |m′. Assim, mmc(a, b) e´ um divisor de todos os mu´ltiplos comuns de a e b.
Exemplo 9 mmc(320571127312, 2436525) = 2max(0,4)3max(20,6)5max(7,25)11max(27,0)31max(2,0) =
243205251127312.
Como
a
mdc(a, b)
e
b
mdc(a, b)
sa˜o primos entre si, podemos mostrar a Proposic¸a˜o 12.
Proposic¸a˜o 12 Quaisquer que sejam a, b ∈ Z+, mmc(a, b) = ab
mdc(a, b)
.
Prova:
ab =
(
mdc(a, b)
a
mdc(a, b)
)(
mdc(a, b)
b
mdc(a, b)
)
=
(
mdc(a, b)
a
mdc(a, b)
b
mdc(a, b)
)
︸ ︷︷ ︸
mmc(a,b)
mdc(a, b)
Para ver que mdc(a, b) a
mdc(a,b)
b
mdc(a,b) e´ mmc(a, b), notemos que e´ mu´ltiplo de a e de b. Por
outro lado, para verificar que divide qualquer outro mu´ltiplo m′ de a e de b, escrevamos
m′ = k1a e m
′ = k2b para inteiros k1 e k2 apropriados. Enta˜o, m
′ = k1mdc(a, b)
a
mdc(a,b) e m
′ =
k2mdc(a, b)
b
mdc(a,b) , pelo que k1
a
mdc(a,b) = k2
b
mdc(a,b) . Como
b
mdc(a,b) e
a
mdc(a,b) sa˜o primos entre
si, b
mdc(a,b) tem que dividir k1. Assim, k1 =
b
mdc(a,b)k
′
1 para algum k
′
1 e consequentemente, m
′ =
b
mdc(a,b)k
′
1mdc(a, b)
a
mdc(a,b) e portanto m
′ e´ mu´ltiplo de mdc(a, b) b
mdc(a,b)
a
mdc(a,b) . Conclui-se
que mdc(a, b) b
mdc(a,b)
a
mdc(a,b) e´ mmc(a, b). ut
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
3.6. CONGRUEˆNCIAS 32
3.6 Congrueˆncias
Dados b ∈ Z+ e x, y ∈ Z dizemos que x e y sa˜o congruentes mo´dulo b se e so´ se x− y for
mu´ltiplo de b, escrevendo x ≡ y (mod b). Tal e´ equivalente a dizer que x e y da˜o o mesmo
resto quando divididos por b. De facto, se x = qxb + rx e y = qyb + ry com 0 ≤ rx < b e
0 ≤ ry < b, enta˜o x − y = (qx − qy)b + (rx − ry) e portanto x − y e´ mu´ltiplo de b se e so´ se
rx − ry o for. Mas, como 0 ≤ rx < b e 0 ≤ ry < b, podemos concluir que −b < rx − ry < b, e
consequentemente rx − ry e´ mu´ltiplo de b se e so´ se for zero. Portanto, x ≡ y (mod b) sse os
restos da divisa˜o de x e y por b sa˜o iguais. (Escrevemos qx, qy e rx, ry em vez de q1, q2 e r1, r2
para indicar que esses quocientes e restos dependem de x e y respectivamente.)
As relac¸o˜es de congrueˆncias teˆm algumas propriedades interessantes (e importantes). Por
exemplo, a “congrueˆncia mo´dulo 2” decompo˜e os inteiros em dois conjuntos:
{x : x ∈ Z, x ≡ 0 (mod 2)} = {2k : k ∈ Z} = {pares}
{x : x ∈ Z, x ≡ 1 (mod 2)} = {1 + 2k : k ∈ Z} = {´ımpares}
A relac¸a˜o de “congrueˆncia mo´dulo b” (para b ∈ Z+) decompo˜e os inteiros em b conjuntos
{x : x ∈ Z, x ≡ 0 (mod b)} e {x : x ∈ Z, x ≡ 1 (mod b)}, . . . , {x : x ∈ Z, x ≡ b− 1 (mod b)},
sendo cada um identificado por um dos b restos poss´ıveis.
Outra das propriedades interessantes da relac¸a˜o de congrueˆncia e´ ser preservada pelas
operac¸o˜es de soma, subtracc¸a˜o e produto, ou seja, se x1 ≡ y1 (mod b) e x2 ≡ y2 (mod b) enta˜o
x1 ± x2 ≡ y1 ± y2 (mod b) e x1 × x2 ≡ y1 × y2 (mod b).
O exemplo seguinte ilustra uma das aplicac¸o˜es de congrueˆncias.
Exemplo 10 Suponha que se quer resolver 5x + 3y = 1 para x, y ∈ Z. Como 5x + 3y = 1⇔
5x − 1 = 3(−y) podemos comec¸ar por resolver 5x ≡ 1 (mod 3). Tem-se 5x ≡ 1 (mod 3) ⇔
2x ≡ 1 (mod 3). Por outro lado, 2x ≡ 1 (mod 3)⇔ (−1)x ≡ 1 (mod 3), ou seja x ≡ (−1) (mod 3),
isto e´ x ≡ 2 (mod 3). Assim, 5x ≡ 1 (mod 3) se e so´ se x = 2 + 3k para algum k ∈ Z.
Voltando a` equac¸a˜o inicial, temos 5x + 3y = 1 ⇔ 5(2 + 3k) + 3y = 1 ⇔ y = −3 − 5k
concluindo-se que as soluc¸o˜es de 5x + 3y = 1 sa˜o os pontos (x, y) da forma x = 2 + 3k e
y = −3− 5k, com k ∈ Z.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
Cap´ıtulo 4
Induc¸a˜o Matema´tica
O me´todo de demonstrac¸a˜o por induc¸a˜o matema´tica (ou induc¸a˜o finita) sera´ bastante usado
durante o curso pelo que e´ conveniente introduzi-lo (ou recorda´-lo).
4.1 Princ´ıpio de Induc¸a˜o Matema´tica
Imagine uma escada com uma infinidade de degraus. Na˜o e´ uma escada com um nu´mero
enorme de degraus! Esta escada, tem sempre um degrau acima de qualquer outro que consi-
dere. Suponha que e´ verdade (4.1).
“Se conseguir chegar ate´ um degrau, enta˜o tambe´m consigo chegar ao seguinte.” (4.1)
Se nada mais for dito, na˜o pode concluir que “consegue chegar ao 16o¯ degrau”.
Suponha agora na˜o so´ (4.1) mas tambe´m (4.2).
“Consigo chegar ao 13o¯ degrau” (4.2)
O que pode concluir? Como consegue chegar ao 13o¯ e e´ verdade (4.1), enta˜o consegue chegar
ao 14o¯. Como consegue chegar ao 14
o
¯ e e´ verdade (4.1), enta˜o consegue chegar ao 15
o
¯. Como
consegue chegar ao 15o¯ e e´ verdade (4.1), enta˜o consegue chegar ao 16
o
¯. De (4.1) e (4.2),
conclui-se (4.3).
“Consegue chegar ao n-e´simo degrau, qualquer que seja n ≥ 13.” (4.3)
Como na˜o e´ dito sobre de que forma chegou ao 13o¯ degrau, nada pode concluir sobre a
possibilidade de chegar ao degrau n, para n < 13.
Mas, suponha agora que (4.4) e´ verdade.
“Consigo chegar ao 1o¯ degrau”. (4.4)
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
4.1. PRINCI´PIO DE INDUC¸A˜O MATEMA´TICA 34
Do mesmo modo que anteriormente, se supuser (4.1) e (4.4) enta˜o pode concluir (4.5).
“Consegue chegar ao n-e´simo degrau, qualquer que seja n ≥ 1.” (4.5)
Proposic¸a˜o 13 (Princ´ıpio de Induc¸a˜o Matema´tica) Escrevamos P(n) como abreviatura
de “o inteiro na˜o negativo n satisfaz a propriedade/condic¸a˜o P ”. Tem-se ∀n ∈ N P (n), se
forem satisfeitas as duas condic¸o˜es (i) e (ii) seguintes.
(i) P (0) e´ verdade;
(ii) ∀k ∈ N ( P (k)⇒ P (k + 1) ), isto e´ para todo k ∈ N, se P (k) enta˜o P (k + 1);
P (0) diz-se (caso de) base de induc¸a˜o. Em P (k)⇒ P (k+1), chamamos a P (k) a hipo´tese
de induc¸a˜o e a P (k + 1) a tese.
Exemplo 11 Seja An a a´rea dum quadrado de lado 2
n, com n ≥ 1 (inteiro). Vamos mostrar
que o resto da divisa˜o de An por 3 e´ 1, qualquer que seja n ≥ 1.
(i) (Caso de base) Como A1 e´ 4 e sabemos que o resto da divisa˜o de 4 por 3 e´ 1, e´ verdade
que a condic¸a˜o se verifica para n = 1.
(ii) (Hereditariedade) Mostremos que qualquer que seja k ≥ 1, se Ak for da forma 3p+1 para
algum inteiro na˜o negativo p, enta˜o Ak+1 = 3q + 1 para algum inteiro na˜o negativo q.
Ora, se Ak = 3p+1, enta˜o Ak+1 = (2
k+1)2 = 4(2k)2 = 4Ak = 4(3p+1) = 3(4p+1)+1.
Ou seja, Ak+1 = 3q + 1 para algum inteiro na˜o negativo, ja´ que se p ∈ Z e p ≥ 0 enta˜o
4p + 1 ∈ Z e 4p + 1 ≥ 0.
Usando (ii) e (i) podemos concluir que qualquer que seja n ≥ 1, a a´rea do quadrado de
lado 2n excede numa unidade um mu´ltiplo de 3.
Observe que, se nos fosse pedido, podiamos apresentar a deduc¸a˜o de que A6 excede numa
unidade um mu´ltiplo de 3:
Por (i), sabemos que o resto da divisa˜o de A1 por 3 e´ 1;
De (i) e (ii), concluimos que o resto da divisa˜o de A2 por 3 e´ 1;
Como o resto da divisa˜o de A2 por 3 e´ 1, concluimos, por (ii), que o resto da divisa˜o de A3 por 3 e´ 1;
Como o resto da divisa˜o de A3 por 3 e´ 1, concluimos, por (ii), que o resto da divisa˜o de A4 por 3 e´ 1;
Como o resto da divisa˜o de A4 por 3 e´ 1, concluimos, por (ii), que o resto da divisa˜o de A5 por 3 e´ 1;
Como o resto da divisa˜o de A5 por 3 e´ 1, concluimos, por (ii), que o resto da divisa˜o de A6 por 3 e´ 1.
Do mesmo modo que conseguimos mostrar que A6 da´ resto 1 quando dividido por 3,
podiamos, dado um n ≥ 1, apresentar a deduc¸a˜o de que An da´ resto 1 quando dividido por 3,
se tal nos fosse pedido.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
4.1. PRINCI´PIO DE INDUC¸A˜O MATEMA´TICA 35
Proposic¸a˜o 14 (Versa˜o geral do Princ´ıpio de Induc¸a˜o) Seja n0 ∈ Z, e suponha que
P (n) denota “o inteiro n satisfaz a propriedade P . Se forem satisfeitas as duas condic¸o˜es (i)
e (ii) seguintes, enta˜o, para todo o inteiro n ≥ n0 tem-se P (n).
(i) P (n0)e´ verdade;
(ii) ∀k ≥ n0 ( P (k)⇒ P (k + 1) ), isto e´, para todo inteiro k tal que k ≥ n0, se P (k)
enta˜o P (k + 1);
Exemplo 12 Vamos mostrar que qualquer que seja n ≥ 1 e quaisquer que sejam a, b ∈ R+,
se tem (a + b)n < 2n(an + bn).
Podemos concluir isso se mostrarmos que as duas condic¸o˜es de aplicabilidade do princ´ıpio
de induc¸a˜o matema´tica se verificam neste caso.
(i) Para n=1, (a + b)1 = a + b < 2(a + b) = 21(a1 + b1), porque a, b ∈ R+.
(ii) Suponhamos agora que para um dado k ≥ 1 se tem (a+b)k < 2k(ak +bk), para a, b ∈ R+
quaisquer, e vamos mostrar que enta˜o (a + b)k+1 < 2k+1(ak+1 + bk+1).
Como (a + b)k+1 = (a + b)k(a + b), e por hipo´tese
(a + b)k < 2k(ak + bk),
concluimos que
(a + b)k+1 < 2k(ak + bk)(a + b) = 2k(ak+1 + bk+1 + akb + bka).
Como
2k(ak+1 + bk+1 + akb + bka) = 2k(ak+1 + bk+1) + 2k(akb + bka),
para concluir que (a + b)k+1 < 2k+1(ak+1 + bk+1) vamos mostrar que
akb + bka ≤ ak+1 + bk+1
quaisquer que sejam a, b reais positivos. Tem-se
akb + bka− ak+1 − bk+1 = −(ak − bk)(a− b) ≤ 0,
ja´ que quaisquer que sejam x, y ∈ R+, se x ≤ y enta˜o xp ≤ yp, para todo p ≥ 1 (relembre
que as func¸o˜es fp(x) = x
p, sa˜o estritamente crescentes em R+).
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
4.1. PRINCI´PIO DE INDUC¸A˜O MATEMA´TICA 36
Exerc´ıcio 4.1.1 Aplique o princ´ıpio de induc¸a˜o matema´tica para resolver os problemas se-
guintes.
a) Mostrar que |sen(nx)| ≤ n|sen(x)|, para todo x ∈ R e todo n ∈ N.
b) Mostrar que 4n + 15n− 1 e´ mu´ltiplo de 9, para todo n ≥ 1.
Exemplo 13 Considere o seguinte algoritmo (imagine que Y e´ uma caixa1).
1. Coloque em Y o valor 0.
2. Escolha um inteiro (vamos referi-lo por X).
3. Se X = 0 enta˜o fac¸a 7.
4. Se X > 0 enta˜o volte a 2.
5. Substitua o valor em Y pela soma do valor que la´ estava com dois.
6. Volte a 2.
7. Indique o valor que guarda em Y, e pa´re.
O valor em Y quando se executa 7. e´ o dobro do nu´mero de inteiros negativos nos valores
escolhidos. Para o provar, vamos mostrar que tal propriedade caracteriza o valor de Y em
cada iterac¸a˜o do ciclo (ou seja, e´ um invariante do ciclo). Usamos induc¸a˜o sobre o nu´mero
de iterac¸o˜es efectuadas.
O valor que esta´ guardado em Y quando esta´ a executar 2. pela 2a¯ vez e´ 0 se o primeiro
valor escolhido em 2. for positivo, e e´ 2 se tal valor for negativo.
Quando esta´ a executar 2. pela 3a¯ vez, o valor em Y e´ 4 se ambos os valores escolhidos
anteriormente forem negativos, e´ 2 se um for negativo e o outro positivo, e e´ 0 se ambos forem
positivos.
Suponhamos que para um dado k ≥ 1, quando se se esta´ a executar 2. pela ka¯ vez, o valor
em Y e´ o dobro do nu´mero de inteiros negativos nos k − 1 valores escolhidos anteriormente.
Enta˜o, por ana´lise do algoritmo, concluimos que se se estiver a executar 2. pela (k + 1)a¯
vez, o valor em Y e´ igual ao valor anterior se tivermos dado mais um nu´mero positivo, ou foi
incrementado de duas unidades, se tivermos dado mais um nu´mero negativo. Portanto, se
quando se estiver a executar 2. pela ka¯ vez, o valor em Y e´ o dobro do nu´mero de inteiros
negativos nos k−1 valores escolhidos anteriormente, enta˜o quando se estiver a executar 2. pela
(k + 1)a¯ vez, valor em Y e´ o dobro do nu´mero de inteiros negativos nos k valores escolhidos
anteriormente.
Consequentemente, por induc¸a˜o matema´tica, podemos concluir que o valor em Y quando
se executa 7. e´ o dobro do nu´mero de inteiros negativos nos valores escolhidos.
1Na terminologia de linguagens de programac¸a˜o, X e Y sa˜o varia´veis de programac¸a˜o.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
4.1. PRINCI´PIO DE INDUC¸A˜O MATEMA´TICA 37
4.1.1 Erros frequentes
E´ necessa´rio mostrar as duas condic¸o˜es de aplicabilidade do princ´ıpio de induc¸a˜o, sem o que
as provas na˜o ficam completas e, no pior dos casos, os resultados mal “demonstrados” sa˜o
mesmo falsos.
O exemplo seguinte serve para ilustrar o facto de certas propriedades, na˜o observa´veis,
poderem ser heredita´rias. Heredita´rias, no sentido de se um dado inteiro as satisfizer, tambe´m
o inteiro seguinte as satisfaz.
Exemplo 14 Considere a seguinte demonstrac¸a˜o (claramente, errada!) de que “entre dois
inteiros consecutivos existe uma infinidade de inteiros”.
Prova: Para todo x ∈ R (em particular para x inteiro) se k ≤ x ≤ k + 1 enta˜o
k + 1 ≤ x + 1 ≤ k + 2, qualquer que seja k ∈ N. Assim, se entre k e k + 1 existir
uma infinidade de inteiros, enta˜o entre k+1 e k+2 tambe´m existe uma infinidade
de inteiros. De facto, a cada inteiro x no intervalo [k, k +1] podemos associar um
inteiro x′ no intervalo [k + 1, k + 2], a saber, por exemplo x′ e´ x + 1.
Logo, por induc¸a˜o matema´tica sobre k, concluimos que entre dois inteiros conse-
cutivos existe uma infinidade de inteiros. ut
Como entre dois inteiros consecutivos na˜o ha´ qualquer outro inteiro, a prova tem que estar
errada. O erro esta´ na conclusa˜o “precipitada”. Na˜o se mostrou que existia um intervalo
[k, k+1] que tinha uma infinidade de inteiros. Apenas se mostrou a condic¸a˜o (ii) do princ´ıpio
de induc¸a˜o. A condic¸a˜o (i) na˜o foi provada, nem se pode provar!
Exemplo 15 A demonstrac¸a˜o seguinte esta´ obviamente errada dado que permite concluir
que “todos os cavalos sa˜o brancos” (e, todos sabemos que ha´ cavalos doutras cores).
Vamos mostrar que qualquer que seja o nu´mero de cavalos que estejam numa
cerca, se existir algum cavalo branco entre eles enta˜o todos os cavalos nessa cerca
sa˜o brancos.
Prova: Para isso vamos mostrar que as duas condic¸o˜es (i) e (ii) do princ´ıpio de
induc¸a˜o se verificam nessa situac¸a˜o.
(i) Como deve estar pelo menos um cavalo branco na cerca, podemos afirmar
que se so´ existir um cavalo na cerca e´ branco.
c©A. P. Toma´s – Dep. de Cieˆncia de Computadores – FCUP
4.1. PRINCI´PIO DE INDUC¸A˜O MATEMA´TICA 38
(ii) Fixemos um k ∈ N, e suponhamos que se existirem k cavalos numa cerca
qualquer, estando pelo menos um cavalo branco entre eles, enta˜o todos os
demais sa˜o brancos. Consideramos agora uma cerca onde esta˜o k + 1 cavalos
sendo branco pelo menos um deles. Retiremos um cavalo da cerca deixando
ficar o branco. Dado que esta˜o k cavalos na cerca, estando um branco entre
eles, segue pela hipo´tese de induc¸a˜o, que os k cavalos na cerca sa˜o brancos.
Resta mostrar que o cavalo que retira´mos primeiramente tambe´m era branco.
Retiremos um dos cavalos que esta´ na cerca (e´ indiferente qual se retira
porque de facto todos sa˜o brancos), e voltemos a colocar o que retira´mos
primeiramente. Mais uma vez, pela hipo´tese, podemos concluir que todos os
cavalos que esta˜o agora na cerca sa˜o brancos.
Assim, pelo princ´ıpio de induc¸a˜o matema´tica segue a validade da proposic¸a˜o que
queriamos mostrar. ut
Sabemos que “se existir algum cavalo branco numa cerca”, tambe´m la´ podem estar cavalos
doutras cores. Logo, a afirmac¸a˜o que “mostra´mos” por induc¸a˜o e´ falsa. Mas, como o sistema
dedutivo que estamos a seguir e´ consistente, na˜o podemos deduzir proposic¸o˜es falsas, pelo
que ha´ que encontrar um erro (v´ıcio) na prova dada.
Sabemos que se estiverem dois cavalos numa cerca e um deles for branco, enta˜o isso na˜o
implica que o outro tambe´m seja branco. Por outras palavras, e´ falso P (1)⇒ P (2).
Para localizarmos o erro, vamos enta˜o seguir em detalhe a prova de (ii) para k = 1.
Fixemos k = 1. Suponhamos (podemos sempre supor o que quisermos) que e´
sempre branco o cavalo que estiver so´zinho numa cerca em que ha´ pelo menos
um cavalo branco. Consideramos agora uma cerca onde esta˜o dois cavalos sendo
branco pelo menos um deles. Retiremos um cavalo da cerca deixando ficar o
branco. Dado que esta´ um so´ cavalo na cerca, estando um branco na cerca, segue
pela hipo´tese de induc¸a˜o, que o cavalo na

Outros materiais