Professional Documents
Culture Documents
Comec amos com algumas noc o es muito b asicas concernentes a inteiros. Sejam e dois inteiros. Dizemos que divide , ou e ultiplo de um divisor de , ou e um m (essas frases dizem a mesma coisa), se existe um inteiro tal que . Na notac a o: . Se n ao e um divisor de , ent ao escrevemos . Se , ent ao isso signica que a proporc a o e um inteiro. Se ,e , ent ao podemos ainda dividir por com resto. O resto da divis ao e um inteiro que satisfaz . Se o quociente da divis ao com resto ao temos e , ent
Essa e uma maneira muito u til de pensar sobre uma divis ao com resto. Voc e provavelmente viu essas noc o es antes; os exerc cios seguintes devem ajud alo(a) a conferir se voc e se lembra o bastante.
6.1 Verique (usando a denic a o) que
6.2 O que signica para , em termos mais corriqueiros, se (a) 6.3 Prove que (a) se (b) se
3 C B e 352 C entao 3 C ; 352 C CD2 3 entao 3 C ou 3 46C . 6.4 Seja o resto da divis ao C 3 . Assuma que E 2 3 e E 2 C . Prove que ED2 . 3 C B . Seja o resto da divisao E 3 , e suponha que 6.5 Assuma que 352 C , e que E DC . Qual e o resto da divisao 3 ? da divis ao 6.6 (a) Prove que para todo inteiro 3 , 3 4 1D2 3 641 . (b) Generalizando, para todo inteiro 3 e todo inteiro positivo , 3 4 102 3 4 1
(c) se (d) se e
seja o resto
200
400
600
800
1000
Figura 6.1: Um c odigo de barra dos primos at e 1000 Uma nova onda de desenvolvimentos na teoria dos n umeros primos veio com a popularizac a o de computadores. Como voc e decide sobre se um inteiro positivo ) 78
1, , , 4, , 6, , 8, 9, 10, , 12, , 14, 15, 16, , 18, , 20, 21, 22, , 24, 25, 26, 27, 28, , 30, , 32, 33, 34, 35, 36, , 38, 39, 40, , 42, , 44, 45, 46, , 48, 49, 50, 51, 52, , 54, 55, 56, 57, 58, , 60, , 62, 63, 64, 65, 66, , 68, 69, 70, , 72, , 74, 75, 76, 77, 78, , 80, 81, 82, , 84, 85, 86, 87, 88, , 90, 91, 92, 93, 94, 95, 96, , 98, 99, 100, , 102, , 104, 105, 106, , 108, , 110, 111, 112, , 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, ! , 128, 129, 130, , 132, 133, 134, 135, 136, , 138, , 140, 141, 142, 143, 144, 145, 146, 147, 148, , 150, , 152, 153, 154, 155, 156, , 158, 159, 160, 161, 162, , 164, 165, 166, 167, 168, 169, 170, 171, 172, " , 174, 175, 176, 177, 178, , 180, , 182, 183, 184, 185, 186, 187, 188, 189, 190, , 192, , 194, 195, 196, , 198, , 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, , 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, , 224, 225, 226, ! , 228, , 230, 231, 232, 233, 234, 235, 236, 237, 238, , 240, , 242, 243, 244, 245, 246, 247, 248, 249, 250, , 252, 253, 254, 255, 256, , 258, 259, 260, 261, 262, , 264, 265, 266, 267, 268, , 270, , 272, 273, 274, 275, 276, ! , 278, 279, 280, , 282, , 284, 285, 286, 287, 288, 289, 290, 291, 292, , 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, , 308, 309, 310, , 312, , 314, 315, 316, , 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, , 332, 333, 334, 335, 336, , 338, 339, 340, 341, 342, 343, 344, 345, 346, , 348, , 350, 351, 352, , 354, 355, 356, 357, 358, , 360, 361, 362, 363, 364, 365, 366, , 368, 369, 370, 371, 372, " , 374, 375, 376, 377, 378, , 380, 381, 382, , 384, 385, 386, 387, 388, , 390, 391, 392, 393, 394, 395, 396, , 398, 399, 400, , 402, 403, 404, 405, 406, 407, 408, , 410, 411, 412, 413, 414, 415, 416, 417, 418, , 420, , 422, 423, 424, 425, 426, 427, 428, 429, 430, , 432, , 434, 435, 436, 437, 438, , 440, 441, 442, , 444, 445, 446, 447, 448, , 450, 451, 452, 453, 454, 455, 456, , 458, 459, 460, , 462, , 464, 465, 466, , 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, ! , 480, 481, 482, 483, 484, 485, 486, , 488, 489, 490, , 492, 493, 494, 495, 496, 497, 498, , 500
Tabela 6.1: Os primos at e 500 e primo? Certamente isso e um problema nito (voc e pode tentar todos os inteiros positivos menores para ver se algum deles e um divisor pr oprio), mas tais m etodos simples cam impratic aveis t ao logo o n umero de d gitos passe de 20 ou algo assim. Faz apenas 20 anos desde que algoritmos muito mais ecientes (programas de computador) existem para testar se um dado inteiro e um primo. Daremos uma olhada nesses m etodos mais adiante. Usando esses m etodos, pode-se agora um tanto facilmente determinar se um n umero com 1000 d gitos e ou n ao um primo. Se um inteiro maior que ! n ao e ele pr oprio um primo, ent ao ele pode ser escrito como um produto de primos: podemos escrev e-lo como um produto de dois inteiros positivos menores que ele; se um desses n ao e um primo, escrevemo-lo como o produto de dois inteiros menores que ele etc.; mais cedo ou mais tarde temos que termina com somente primos. Os gregos antigos tamb em sabiam (e provaram) um fato mais sutil sobre essa representac a o: que ela e que n ao existe u nica. O que isso quer dizer e outra maneira de escrever ) como um produto de primos (exceto, e claro, podemos multiplicar os mesmos primos numa ordem diferente). Para provar isso requer alguma sosticac a o (como veremos na pr oxima sec a o), e reconhecer a necessidade de tal resultado foi uma senhora conquista; mas tudo isso tem mais de 2000 anos! realmente surpreendente que, ainda hoje, nenhuma maneira eciente e E conhe claro que supercomputadores poderosos e cida para se encontrar tal decomposic a o. E
79
sistema massivamente paralelos podem ser usados para encontrar decomposic o es por meio da forc a bruta para n umeros um tanto grandes; o recorde atual e cerca de 140 d gitos, e a diculdade cresce muito rapidamente (exponencialmente) com o n umero de d gitos. Para encontrar a decomposic a ` o prima de um dado n umero com 400 d gitos, por qualquer dos m etodos conhecidos, est a muito al em das possibilidades dos computadores no futuro previs vel.
9 9
Podemos assumir que e o menor primo ocorrendo nessas fatorac o es. (De fato, se necess ario, podemos trocar o lado esquerdo e o lado direito de modo que o menor primo em qualquer das duas fatorac o es ocorre na esquerda; e ent ao mudamos a ordem dos fatores no lado esquerdo de modo que o menor fator vem primeiro. Na g ria usual da matem atica, dizemos que podemos assumir que e o menor primo sem perda de generalidade.) Vamos produzir um criminoso menor; isso ser a uma contradic a o, pois assumimos que ) era o menor deles. O n umero n ao pode ocorrer entre os fatores , caso contr ario podemos dividir ambos os lados por e obter um criminoso menor. , onde . Sabemos que Divida cada por com resto: , pois um primo n a o pode ser um divisor de um outro primo. 9 9 . Mostramos Fac a ) que ) e um criminoso menor. Trivialmente , e portanto ) ) . Mostramos que em tem duas fatorac o es diferentes em primos. Uma dessas pode ser obtida ) tamb . Aqui os fatores podem n da denic a o ) ao ser primos, mas podemos quebr a o a-los em produtos de primos, de modo que terminamos com uma decomposic de ) .
"
&(
! "
80
Para obter uma outra a o, observamos que decomposic escrever a denic a o de ) na forma
$ %
e se expandimos, ent ao todo termo ser a divis vel por . (Um dos termos e 9 9 , como um que e igual a ) e portanto divis vel por . Todos os outros termos cont e m fator.) Agora dividimos ) por e ent a o continuamos a fatorar ) , para obter uma fatorac a o de ) . Mas, essas fatorac o es s ao diferentes? Sim! O primo ocorre na segunda, mas ela n ao pode ocorrer na primeira, onde todo fator primo e menor que . Por conseguinte encontramos um criminoso menor. Como ) era supostamente o menor entre todos os criminosos, isso e uma contradic a o. A u nica maneira de resolver essa contradic a o e concluir que n ao existem criminosos; nossa suposic a o indireta era falsa, e nenhum inteiro pode ter duas fatorac o es primas diferentes.
$ % )) ) $ % #
) . De fato, podemos
$ )) ) $
6.7 Leia cuidadosamente o seguinte argumento do criminoso m nimo: . Todo inteiro negativo e A SSERC AO mpar. P ROVA . Suponha, para chegar a uma contradic a o, que existem inteiros negativos que s ao pares. Chame esses inteiros de criminosos, e suponha que seja um menor que (recorde que criminoso m nimo. Considere o n umero . Esse e negativo!), portanto ele e um criminoso menor. Mas assumimos que era o e criminoso m nimo, portanto isso e uma contradic a o.
Como uma aplicac a o do Teorema 6.3.1, provamos um fato que era conhecido dos Pitagoreanos (estudantes de Pit agoras) no s eculo VI a.C. Teorema 6.3.2 O n umero
1 e irracional.
(Um n umero real e irracional se ele n ao pode ser escrito como a frac a o de dois inteiros. Para os Pitagoreanos, a quest ao surgiu da geometria: eles queriam saber se a diagonal de um quadrado e comensur avel com seu lado, i.e., se existe um segmento qualquer que esteja contido em ambos um n umero inteiro de vezes. O teorema acima respondeu essa quest ao na negativa, causando um tumulto substancial em nossas tropas.) racional, e derivaProva. Damos uma prova indireta novamente: supomos que 1 e mos uma contradic a o. O que a suposic a o indireta signica e que 1 pode ser escrita como o quociente de dois inteiros positivos: 1 . Elevando ao quadrado ambos os . lados e rearrumando, obtemos 1 Agora considere a fatorac a o prima de ambos os lados, e, em particular, o n umero primo 1 em ambos os lados. Suponha que 1 ocorra vezes na fatorac a o prima de e ) vezes na fatorac a o prima de . Ent ao ele ocorre 1 vezes na fatorac a o prima de . Por outro lado, ele ocorre 1 ) vezes na fatorac a o prima de e por conseguinte ele , e a fatorac ! vezes na fatorac ocorre 1 ) a o prima de 1 . Como 1 a o prima ! ! e 1 . Mas isso e e u nica, temos que ter 1 ) imposs vel pois 1 ) mpar mas 1 is par. Essa contradic a o prova que 1 tem que ser irracional.
&
&
&
81
6.8 Existe algum primo par? 6.9 (a) Prove que se e um primo,
(b) Suponha que e sejam inteiros e . Suponha tamb em que e um primo e e um divisor da frac a o .
3 C
3 eC
s ao inteiros, e
C 3
352 C
2 3 C , entao 2 3
ou
2C
(ou ambos).
2 C
mas
6.11 Seja um primo e E . Considere os n umeros 777 . Divida cada um deles por , para obter restos 77 3 ! . Prove que todo inteiro de a ocorre exatamente uma vez entre esses restos. [Dica: Primeiro prove que nenhum resto pode ocorrer duas vezes.] 6.12 Prove que se e um primo, ent ao " e irracional. De maneira mais geral, prove que se e um inteiro que n ao e um quadrado, ent ao " e irracional.
" #
1 3 %4H1
3 73 3
fatores.
%4 1 3 1 !4 1
6.13 Tente formular e provar um teorema ainda mais geral sobre a irracionalidade dos n umeros .
&
&
0&
Se olharmos para v arios gr acos ou tabelas de primos, nossa principal impress ao e que existe bastante irregularidade neles. Por exemplo, a Figura 6.1 representa cada primo at e 1000 por uma barra. Vemos grandes lacunas e ent ao vemos tamb em primos que s ao muito pr oximos. Podemos provar que essas lacunas cam maiores e maiores quando consideramos n umeros maiores e maiores; em algum lugar l a adiante existe uma cadeia de 100 n umeros compostos consecutivos, em algum lugar (ainda mais longe) existe uma cadeia de 1000 n umeros compostos consecutivos, etc. Para enunciar isso em uma forma matem atica: Teorema 6.4.2 Para todo inteiro positivo & , existem & inteiros compostos consecutivos.
82
Prova. Podemos provar esse teorema por um argumento um tanto semelhante a ` prova ! e considere os n do teorema 6.4.1. Seja ) umeros &
&
)%$
&
1 # )%$
&
24#
Algum desses pode ser um primo? A resposta e n ao: o primeiro n umero e par, pois )%$ e ao ambos pares. O segundo n umero e divis vel por 2 , pois )%$ e 2 s ao ambos divis veis 1 s 2 (assumindo que ) #) . 1 ). Em geral )%$ 1 # 24# e divis vel por , para todo % ! & n Da esses n umeros n ao podem ser primos, e portanto encontramos ) umeros compostos consecutivos.
0&
)) )
Que tal a quest ao oposta, encontrar primos muito pr oximos um ao outro? Como todos os primos exceto 1 s ao mpares, a diferenc a dos dois primos tem que ser pelo menos dois, exceto para 1 e 2 . Dois primos cuja diferenc a e 1 s ao chamados primos g emeos. Por conseguinte 24#35 , 54#76 , !!$#&!2 , !C6#&! D s ao primos g emeos. Olhando para a tabela dos primos at e 5 , encontramos muitos primos g emeos; c alculo extensivo mostra que existem primos g emeos com centenas de d gitos. Entretanto, n ao se sabe se existe uma quantidade innita de primos g emeos! (Quase certamente existe, mas nenhuma prova desse fato foi encontrada, apesar dos esforc os de muitos matem aticos durante mais de 2000 anos!) Uma outra maneira de dar uma volta no Teorema 6.4.2: qu ao grande podem ser essas lacunas, em relac a o ao ponto onde eles se encontram na reta dos n umeros? Poderia acontecer que n ao haja de jeito nenhum primos com, digamos, 100 d gitos? Essa e novamente uma quest ao muito dif cil, mas aqui sabemos de fato a resposta. (N ao, isso n ao acontece.)
25 20 15 10 5
20
40
60
80
100
1 1BB
83
300 250 200 150 100 50 0 400 800 1200 1600 2000
1 7B B B
Uma das quest oes mais importantes sobre primos e : quantos primos existem at e um dado n umero ) ? Representamos o n umero de primos at e ) por ) . A Figura 6.2 ilustra o grafo dessa func a o na faixa de ! a ! , e a Figura 6.3, na faixa de ! a 1 . Podemos ver que a func a o cresce razoavelmente suavemente, e que sua inclinac a o decresce lentamente. Uma f ormula exata para ) e certamente imposs vel de obter. Em torno do ano de 1900, um resultado poderoso chamado o Teorema do N umero Primo foi provado por dois matem aticos, Hadamard e de la Vall ee Poussin.
8
Teorema 6.4.3 (O Teorema do Numero Primo) Suponha que # ) . Ent n umero de primos entre !# 1 # ao
) ))
(Aqui ) signica logaritmo natural, i.e., logaritmo na base Recordemos tamb em que a notac a o quer dizer que o quociente
) )
represente o
)
)
1 #6 ! $ B 1@B !
)) ) .
84
primos at e!
Isso e um bocado de primos! Comparando isso com o n umero total de inteiros positivos % ! D9 ! , obtemos com 1 d gitos, que sabemos que e !
D9 ! !# D 5 9 !
Por conseguinte, entre os inteiros com 1 d gitos, um em cada 8A e um primo. (Advert encia: Esse argumento n ao e preciso; a principal fonte de preocupac a o e que no teorema do n umero primo, apenas enunciamos que ) e pr oximo a ) ) se ) for sucientemente grande. Pode-se dizer mais sobre qu ao grande ) tem que ser para se ter, digamos, um erro menor que ! por cento, mas isso leva a quest oes ainda mais dif ceis, que ainda hoje n ao est ao completamente resolvidas.)
8A
)
H a muitas outras observac o es simples que se pode fazer olhando para as tabelas de primos, mas elas tendem a ser muito dif ceis e a maioria delas n ao est ao resolvidas ainda hoje, em alguns casos ap os 2.500 anos de tentativas. Mencionamos o problema sobre se existe uma quantidade innita de primos g emeos. Um outro famoso problema n ao-resolvido e a conjectura de Goldbach. Ela enuncia que todo inteiro par maior que 1 pode ser escrito como a soma de dois primos. (Goldbach tamb em formulou uma conjectura sobre n umeros mpares: todo inteiro mpar maior que 5 pode ser escrito como a soma de tr es primos. Essa conjectura foi essencialmente provada, usando m etodos muito profundos, por Vinogradov nos anos 1930s. Dizemos essencialmente pois a prova somente funciona para n umeros que s ao muito grandes, e a possibilidade de um n umero nito de excec o es permanece aberta.)
P. L. Chebyshev
Suponha que temos um inteiro ) e queremos saber qu ao breve ap os ) podemos ter certeza de encontrar um primo. Por examplo, qu ao pequeno, ou grande, e o primeiro primo com pelo menos 100 d gitos? Nossa prova da innitude de primos diz que ! . Esse e para todo ) , existe um primo entre ) e )%$ um enunciado muito fraco;
&
85
! 2 A$1BB ! , enquanto ele diz, por exemplo, que existe um primo entre 10 e ! $ ! ! que, obviamente, o pr oximo primo e . Chebychev provou no s eculo XIX que existe sempre um primo entre ) e 1@) . Est a agora provado que existe sempre um primo entre 2 e A@8 8 ). Mas e dois cubos consecutivos (digamos, entre 1 6 um outro problema famoso e n ao resolvido se existe sempre um primo entre dois quadrados consecutivos. (Experimente com isso: voc e encontrar a, na realidade, muitos primos. Por exemplo, ! e! 1 ! !$! encontramos 101, 103, 107, 109, 113. Entre ! entre ! ! ! 1 ! encontramos 10007, 10009, 10037, 10039, 10061, 10067, e ! ! 10069, 10079, 10091, 10093, 10099, 10103, 10111, 10133, 10139, 10141, 10151, 10159, 10163, 10169, 10177, 10181, 10193.)
8&
)8
8
e um primo.
P. de Fermat
Primos s ao importantes porque podemos compor todo inteiro a partir deles; mas acontece que eles tamb em t em muitas outras, e frequentemente surpreendentes, propriedades. Uma dessas foi descoberta pelo matem atico franc es Pierre de Fermat (1601 1655), agora chamado Pequeno Teorema de Fermat. Teorema 6.5.1 Se e um primo e
e ao um inteiro, ent
% .
(6.1)
Antes de provar esse teorema, observamos que e um tanto frequentemente enunciado na seguinte forma: se e ao ao divis vel por , ent um primo e e um inteiro n
% !
86
O fato de que essas duas asserc o es s ao equivalentes (no sentido de que se conhecemos a veracidade de uma, e f acil de provar a outra) e deixado ao leitor como Exerc cio 6.66. Para provar o Pequeno Teorema de Fermat, precisamos de um lema, que enuncia uma outra propriedade de divisibilidade de primos (mas e mais f acil de provar): Lema 6.5.2 Se e um primo e
"
&
"
% !
& &
, ent ao
.
&
Aqui divide o numerador, mas n ao o denominador, pois todos os fatores no denominador s ao menores que , e sabemos pelo exerc cio 6.9(a) que se um primo n ao divide quaisquer desses fatores, ent ao ele n ao divide o produto. Da segue (veja o um divisor de . exerc cio 6.9(b)) que e Prova. [do Teorema 6.5.1] Agora podemos provar o Teorema de Fermat por induc a o sobre . A asserc a o e trivialmente verdadeira se . Suponha que , e fac a ! . Ent ao % ! % !
&
& & )) ) & & !% % ! ! % ! % & & ) )) & ) ! % ! nos par Aqui a express ao % enteses e divis vel por pela hip otese da induc a o, enquanto que os outros termos s ao divis veis por pelo lema 6.5.2. Segue que %
& &
Figura 6.4: A.J. Wiles Vamos fazer aqui uma observac a o sobre a hist oria da matem atica. Fermat e mais famoso por seu Ultimo teorema, que e a seguinte asserc a o: 87
Se ) ao a soma das ) - esimas pot encias de dois inteiros positivos 1 , ent nunca e esima pot encia de um inteiro positivo. a ) - (A suposic a o de que ) 1 e essencial: existem exemplos de dois quadrados cuja soma 8 5 , ou 5 ! 1 !2 . Na verdade, e um terceiro quadrado: por exemplo, 2 existe uma quantidade innita de tais triplas de quadrados, veja o exerc cio 6.25.) Fermat armou em uma nota que ele provou isso, mas nunca escreveu a prova. Esse enunciado permaneceu como talvez o mais famoso problema n ao resolvido em matem atica at e 1995, quando Andrew Wiles (em uma parte com a ajuda de Robert Taylor) nalmente o provou.
&
&
6.15 Mostre por meio de exemplos que nem a asserc ao no lema 6.5.2 nem o Pequeno Teorema de Fermat permanecem v alidos se descartarmos a suposic a o de que e um primo.
agono regular, e para um xo ( ), considere todos os 6.16 Considere um - ertices. Ponha todos esses -subconjuntos subconjuntos de -elementos do conjunto de seus v em um n umero de caixas: colocamos dois -subconjuntos na mesma caixa se eles podem ser ertices rotacionados um ao outro. Por exemplo, todos os -subconjuntos consistindo de v consecutivos pertencer ao a uma e a ` mesma caixa.
(a) Prove que se e um primo, ent ao cada caixa conter a exatamente dessas c opias rotacionadas. (b) Mostre por meio de um exemplo que (a) n ao permanece verdadeira se descartarmos a suposic a o de que e um primo. (c) Use (a) para dar uma nova prova do Lema 6.5.2. 6.17 Imagine n umeros escritos na base , com no m aximo d gitos. Ponha dois n umeros na mesma caixa se eles resultam de um deslocamento c clico um do outro. Quantos estar ao em cada classe? D e uma nova prova do teorema de Fermat dessa maneira. 6.18 D e uma terceira prova do Pequeno Teorema de Fermat baseada no exerc cio 6.11. [Dica: considere o produto 7 .]
#4(1
3 7 3 3
4 1 3
88
denic a o faz sentido.) O m aximo divisor comum de e e representado por Por conseguinte
$ ! #A
!$#
Dizemos que dois inteiros s ao primos si se seu m aximo divisor comum e ! . Ser a entre # mais conveniente denir tamb em para todo . Uma outra noc a o at e certo ponto semelhante e o m nimo m ultiplo comum de dois inteiros, que e o menor inteiro positivo que e um m u ltiplo de ambos os inteiros, e # . Por exemplo, representado por
1 #A 5# A
1 #
!$#
2 # A # A A
24# A)
8 #A
# .
1 #
! #A
A #
1 #A A # 5# 2 # A
4 2 #A # A A
A# A
8 #A
! 1 #
O m aximo divisor comum de dois inteiros positivos pode ser encontrado um tanto facilmente usando-se as suas fatorac o es primas: olhe para os fatores primos comuns, eleve-os a ` menor dos dois expoentes, e tome o produto dessas pot primos. Por 2 #&! encias de exemplo, 2 1 9 2 9 5 e! B 19 2 , e portanto B 19 2 A . O problema com esse m etodo e que e muito dif cil encontrar a fatorac a o prima de inteiros grandes. O algoritmo a ser discutido nesta sec a o calcular a o m aximo divisor comum de dois inteiros de uma maneira muito mais r apida, sem encontrar suas fatorac o es primas. Esse algoritmo e um importante ingrediente de quase todos os algoritmos envolvendo computac a o com inteiros. (E, como vemos do seu nome, ele vai l a atr as para o grande matem atico grego!)
8
3 @ C 4 3 . 3 3 C 3 . 3 C 3 7@ C . 6.21 (a) Se 3 e par e C e mpar, ent ao ao pares, ent ao (b) Se ambos 3 e C s 3 C 7 3 7 C 7 .
ao (b) Seja o resto se dividirmos por . Ent
3 eC
3 C
6.22 Como voc e pode expressar o m nimo m ultiplo comum de dois inteiros, se voc e conhece a fatorac a o prima de cada um? 6.23 Suponha que lhe s ao dados dois inteiros, e que voc e conhec a a fatorac a o prima de um deles. Descreva uma maneira de computar o m aximo divisor comum desses n umeros. 6.24 Prove que para quaisquer dois inteiros
3 C
3 eC ,
3 C 3 C
89
. (a) Escolha quaisquer 6.25 Tr es inteiros , e formam uma tripla pitag orica, se tr es inteiros , e , e fac a , , . Verique que 4 e uma tripla pitag orica. (b) Prove que todas as triplas pitag oricas surgem dessa maneira: se 4 7 , ent s ao inteiros tais que $ ao existem outros inteiros , e de modo que , e possam ser expressos por meio das f ormulas acima. [Dica: Primeiro, mostre que o problema pode ser reduzido ao caso em que , e use isso para argumentar que e par, e s ao mpares. Segundo, fac a e s ao quadrados.]
3 C E
3 F C
3 (7
3 FC F
C E CGFE 7 @ C 4HE 7
C64E C F E
3 C E 3 C E 3 C E 3 C E 1
Agora nos voltamos para o Algoritmo Euclideano. O algoritmo e baseado em dois fatos simples, j a familiares como exerc cios 6.19 e 6.20. Suponha que nos s ao dados dois inteiros positivos e , e desejamos achar seu m aximo divisor comum. Aqui est a o que fazemos:
1. Se ent ao trocamos por e vice-versa. 2. Se , dividimos por , para obter um resto . Substituimos retornamos ao passo 1. 3. Sen ao (se ), retornamos como o m.d.c. e paramos.
por
Quando voc e executa o algoritmo, especialmente a ` m ao, n ao h a raz ao para trocar as posic o es de e se : podemos simplesmente dividir o maior pelo menor (com resto), e substituir o maior pelo resto se o resto n ao e 0. Vamos fazer alguns exemplos.
! 2 #1 ! ! 2 #B #2 ! 1 #!
Voc e pode conferir em cada caso (usando uma fatorac a o prima dos n umeros) que o resultado e de fato o m.d.c. Se descrevemos um algoritmo, a primeira coisa a se preocupar e se ele termina de alguma forma. Logo, por que o Algoritmo Euclideano e nito? Isso e f acil: os n umeros nunca aumentam, e um deles diminui toda vez que o passo 2 e executado, portanto ele n ao pode durar innitamente. Ent ao obviamente temos que assegurar que nosso algoritmo produz o que precisamos. Isso est a claro: o passo 1 (trocar os n umeros de posic a o) trivialmente n ao modica o m.d.c., o passo 3 (substituir o maior pelo resto de uma divis ao) n ao modica o m.d.c. pelo exerc cio 6.20(b). E quando paramos no passo 2, o n umero retornado e de fato o m.d.c. dos dois n umeros correntes pelo exerc cio 6.19. Uma terceira, e mais sutil, pergunta que voc e deveria fazer quando est a desenvolvendo um algoritmo: quanto tempo ele leva? Quantos passos ele levar a antes que termine? Podemos obter um limitante do argumento que prova terminac a o nita: como um ou o outro n umero decresce toda vez que o lac o 1-2 e executado, ele certamente vai parar em menos que iterac o es. Esse n ao e verdadeiramente um limitante de tempo excelente: se aplicarmos o Algoritmo Euclideano a dois n umeros com ! ! d gitos, ent ao ele diz que o algoritmo n ao levar a mais que 1 9 passos, o que e um n umero astron omico, e, por conseguinte, in util. Mas, felizmente esse e apenas um
&
8
90
limitante superior, e um limitante muito pessimista nesse aspecto; os exemplos que consideramos parecem mostrar que o algoritmo termina mais r apido que isso. Mas os exemplos tamb em sugerem que essa quest ao e um tanto delicada. Vemos que o Algoritmo Euclideano pode ser um tanto diferente em durac a o, dependendo dos n umeros em quest ao. Algumas das observac o es poss veis feitas a partir desses exemplos est ao contidas nos exerc cios a seguir.
6.26 Mostre que o Algoritmo Euclideano pode terminar em dois passos para inteiros positivos arbitrariamente grandes, mesmo se seu m.d.c. for 1. 6.27 Descreva o Algoritmo Euclideano aplicado a dois n umeros de Fibonacci consecutivos. Use sua descric a o para mostrar que o Algoritmo Euclideano pode levar um n umero arbitr ario de passos.
Ent ao o que podemos dizer sobre quanto tempo leva o Algoritmo Euclideano? A chave para a resposta e o seguinte lema: Lemma 6.6.1 Durante a execuc a o do Algoritmo Euclideano, o produto dos dois n umeros correntes decresce por um fator de pelo menos 2 em cada iterac a o. Prova. Para ver que isso e o caso, considere o passo no qual o par # ( )e # substitu do pelo par , onde e o resto de quando dividido por . Ent ao temos 1 , e portanto e . Da tal qual armado.
Suponha que apliquemos o Algoritmo Euclideano a dois n umeros e e levamos & passos. Segue pelo Lema 6.6.1 que ap os os & passos, o produto dos dois n umeros correntes ser a no m aximo 1 . Como isso e pelo menos ! , obtemos que 1#
&
"
"
e portanto
&
Por conseguinte provamos o seguinte. Teorema 6.6.1 O n umero de passos do Algoritmo Euclideano, aplicado a dois inteiros positivos e , e aximo no m . Substitu mos a soma dos n umeros pela soma dos logaritmos dos n umeros no limitante sobre o n umero de passos, o que e realmente um avanc o. Por exemplo, o n umero de iterac es na computac o do m.d.c. de dois inteiros de 300-d gitos e menor ! o ! a ! , que era nossa que 1 . Um tanto menos que A 1 1 primeira e ing enua estimativa! Note que menor que o n umero de bits de e (quando escrito na base 2), portanto podemos dizer que o Algoritmo Euclideano n ao leva mais iterac o es que o n umero de bits necess arios para representar os n umeros na base 2. O teorema acima d a apenas um limitante superior para o n umero de passos que o Algoritmo Euclideano leva; podemos ter ainda mais sorte: por exemplo, quando aplicamos o Algoritmo Euclideano a dois inteiros consecutivos, ele leva apenas um
&
" 8
91
passo. Mas, a ` s vezes, n ao se pode fazer melhor. Se voc e fez o exerc cio 6.27, voc e viu que quando aplicado a dois n umeros de Fibonacci consecutivos e , o Algoritmo Euclideano leva & % ! passos. Por outro lado, o lema acima d a o limitante
%&
&
! 5
&
1
5 !
&
&
! 5
&
1
&
1 & !
&
1
!#32 BB
% ! #$ A 1@B #
portanto superestimamos o n umero de passos apenas por um fator de cerca de 1,388, ou menos que 40%. N umeros de Fibonacci n ao s ao bons apenas para dar exemplos de n umeros grandes para os quais podemos ver como o Algoritmo Euclideano funciona; eles tamb em s ao u teis na obtenc a o de um limitante ainda melhor sobre o n umero de passos. Enunciamos o resultado como um exerc cio. Seu conte udo e que, num certo sentido, o Algoritmo Euclideano e mais demorado sobre dois n umeros de Fibonacci consecutivos.
6.28 Suponha que e que o Algoritmo Euclideano aplicado a que e ! #" .
3 eC
leve
passos. Prove
6.29 Considere a seguinte vers ao do Algoritmo Euclideano para computar : (1) troque os n umeros de lugar se necess ario para ter E ; (2) se , ent ao retorne ; (3) se % $ , ent ao substitua por e v a para (1). (a) Execute esse algoritmo para computar #& . (b) Mostre que o Algoritmo Euclideano modicado sempre termina com a resposta certa. (c) Quanto tempo esse algoritmo leva, no pior caso, quando aplicado a dois inteiros de 100d gitos? 6.30 Considere a seguinte vers ao do Algoritmo Euclideano para computar . Comece computando a maior pot encia de que divide ambos e . Se essa e (' , ent ao divida e por os esse pr e-processamento, fac a o seguinte: )' . Ap
C 4H3
3 C
3 B
3 C
3 B
1 7
3 C. ao verique as paridades de 3 e C ; se 3 e par, e C e mpar, ent ao substitua 3 (2) Se 30 $ B , ent por 3 7 ; se ambos 3 e C s ao mpares, ent ao substitua C por C@4 3 ; em cada caso, v a para (1). (3) se 3(B , ent ao retorne ) 7 ' C como o m.d.c. Agora v em os exerc cios: 1 & 7 . (a) Execute esse algoritmo para computar # (b) Parece que no passo (2), ignoramos o caso em que ambos 3 e C s ao pares. Mostre que
(1) Troque os n umeros de lugar se necess ario para ter E (c) Mostre que o Algoritmo Euclideano modicado sempre termina com a resposta certa.
3 C
3 C
3 C
(d) Mostre que esse algoritmo, quando aplicado a dois inteiros de 100-d gitos, n ao leva mais que 1500 iterac o es.
92
O Algoritmo Euclideano d a muito mais que apenas o m aximo divisor comum de dois n umeros. A principal observac a o e que se executarmos o Algoritmo Euclideano para computar o m aximo divisor comum de dois inteiros positivos e , todos os n umeros que produzimos ao longo da computac a o podem ser escritos como a soma de um inteiro m ultiplo de e um inteiro m ultiplo de . 2 #&! B : Como um exemplo, vamos retomar a computac a o de
! B ; isso signica que, Aqui o n umero 12 foi obtido como o resto da divis ao 2 ele foi obtido por meio da subtrac a o de 300 no mais alto m ultiplo de 18 que e menor: ! 1 2 % ! A9 ! B . Vamos registr a-lo dessa forma:
2 #&! ! #&! ! # B 1 B 1 A A )
8
2
8 #&! B
% ! A9 ! B & # ! B
A seguir, obtivemos 6 por meio da subtrac a o de 12 em 18, o que podemos fazer de tal maneira que mantemos a forma de (m ultiplo de 300)+(m ultiplo de 18):
% ! A9 ! B & # ! B
8
% ! A9 ! B #&! 6 9 ! B % 2
)
!C6 9 ! B % 2
Vamos provar que todos os n umeros produzidos pelo Algoritmo de formalmente # podem ser escritos como a soma de um inteiro m Euclides para ultiplo de e um inteiro m ultiplo de . Suponha que isso se verica para dois n u meros consecutivos que computamos, de modo que um e ) , e o outro e & , onde # ) # & # s ao inteiros (n ao necessariamente positivos). Ent a o no pr o ximo passo que computamos (digamos) o resto de m odulo , que e
)
&
#&
%
$ & & )
$ #
que est a na forma correta novamente. Em particular, obtemos o seguinte: Teorema 6.6.2 Seja
# . Entao
onde
& )
e ) s ao inteiros.
Como no exemplo trabalhado acima, podemos manter a representac a o de inteiros na forma ) durante a computac a o. Isso mostra que a express ao para no teorema n ao apenas existe, mas ela e facilmente comput avel.
&
93
ao inteiros e e d ao o mesmo resto quando divididos por (onde # # s ), ent ao escrevemos odulo ). Uma maneira equivalente de dizer isso e (leia: e congruente a m que e % um divisor de . O n umero e chamado de modulus da relac a o de congru encia.
Se
Essa notac a o sugere que desejamos considerar essa relac a o como um an alogo da igualdade. E, de fato, muitas das propriedades da igualdade s ao v alidas para congru encias, pelo menos se mantivermos o modulus xo. Temos a reexividade:
simetria:
94
e transitividade:
Essas s ao triviais se pensarmos na relac a o de congru encia como armando a igualdade: a saber, igualdade dos restos quando divididos por . Podemos fazer muitos c alculos com congru encias tais como com equac o es. Se temos duas congru encias com o mesmo modulus
and
ent ao podemos adicion a-las, subtra -las, e multiplic a-las, para obter
& &
# %
(retornaremos a ` divis ao mais adiante). Um caso especial u til da regra da multiplicac a o e que podemos multiplicar ambos os lados de uma congru encia pelo mesmo n umero: se ent ao & para todo inteiro & . & Essas propriedades precisam ser provadas, no entanto. Pela hip otese, % e % s ao divis veis por . Para ver que congru encias podem ser somadas, temos que % e vericar que divis vel por . Para esse m, escrevemo-la na forma % % , o que mostra que ela e a soma de dois inteiros divis veis por e portanto que ela tamb em e divis vel por . A prova de que congru encias podem ser subtra das e muito semelhante, mas multiplicac a o e um pouco mais complicado. Temos que mostrar que '% e divis vel por . Para esse m, escrevemo-la na forma
% , Aqui E% e % da sua soma tamb em o e . A notac a o de congru encia e muito conveniente na formulac a o de v arios enunciados e argumentos sobre divisibilidade. Por exemplo, o Pequeno Teorema de Fermat 6.5.1 pode ser enunciado da seguinte maneira: se e um primo ent ao
para o qual
1 7 D7 1
?
3 C
B ?
95
3 C 73 7 C , mas 3 $ C . (b) E B 3E CE E 3 C . , B , 6.35 Seja um primo. Mostre que se s ao inteiros tais que e 4 1 , ent ao .
6.34 (a) Encontre dois inteiros e tais que Mostre que se $ e ao , ent
&
Sex
Sex
&
Ter #
Ter 9 Sex
Seg &
Qua
&
Sex
Seg
&
Sex #
e elas s ao distributivas:
Seg &
Qua 9 Sex
Qua % Qua
)
Dom #
&
Dom
Qua #
Qua 9 Dom
Qua
Nada disso e algo novo, se pensarmos em Segunda-Feira como 1, Terc a-Feira como 2, etc., e se nos dermos conta de que como o dia 8 e Segunda-Feira novamente, 96
temos que substituir o resultado de qualquer operac a o aritm etica pelo seu resto m odulo 7. Todas as identidades acima expressam relac o es de congru encia, e s ao imediatas das propriedades b asicas das congru encias. E a divis ao? Em alguns casos, ela e o bvia. Por exemplo, o que e Sab/Qua? Traduzindo para inteiros, isso e 6/3, o que d a 2, i.e., Ter. Conra: Ter 9 Qua Sab. Mas o que e Ter/Qua? Em nossos sistemas num ericos mais familiares, isso seria 1 2 , o que n ao e um inteiro; na verdade, n umeros racionais foram introduzidos precisamente de forma que poder amos falar sobre o resultado de todas as divis oes (exceto divis oes por 0). Temos que introduzir dias da semana fracion arios? Resulta que esse novo sistema num erico (com apenas 7 n umeros) e melhor! O um n que signica Ter/Qua? E umero tal que 9 Qua Ter. Mas e f acil vericar que Qua 9 Qua Ter; portanto temos (ou pelo menos parece fazer sentido dizer que temos) que Ter/Qua=Qua. Isso d a um exemplo mostrando que somos capazes de realizar divis ao sem introduzir novos n umeros (ou novos dias da semana), mas sempre podemos realizar a divis ao? Para ver como isso funciona, vamos tomar uma outra divis ao: Qua/Sex, e vamos tentar n ao adivinhar o resultado; ao contr ario, chamemo-lo e mostremos que um dos dias da semana tem que ser apropriado para . Portanto fac a Qua Sex. Isso signica que 9 Sex Qua. Para cada dia da semana, o produto 9 Sex a algum dia da semana. A principal armac a o e que para dias diferentes , os produtos 9 Sex s a o todos diferentes. De fato, suponha ent ao que
ent ao
% 9 Sex
9 Sex
9 Sex #
Dom (6.2)
(usamos aqui a lei distributiva e o fato de que Domingo funciona como 0). Agora Domingo e an alogo 0 tamb em no sentido de que tal qual o produto de dois n umeros diferentes de zero e diferente de zero, o produto de dois dias diferentes de Domingo % Dom, ou e diferente de Domingo. (Conra!) Portanto devemos ter Dom . Portanto os dias 9 Fr s ao todos diferentes, e existem sete deles, logo, todo dia da semana tem que ocorrer nessa foram. Em particular, Qua ocorrer a. Esse argumento funciona para qualquer divis ao, exceto quando tentamos dividir por Domingo; j a sabemos que Domingo funciona como 0, e portanto Domingo multiplicado por qualquer dia e Domingo, logo n ao podemos dividir qualquer outro dia por Domingo (e o resultado de Domingo/Domingo n ao est a bem denido, poderia ser qualquer dia). Congru encias introduzidas na sec a o 6.7 prov eem uma maneira frequentemente conveniente de manusear esses n umeros estranhos. Por exemplo, podemos escrever (6.2) na seguinte forma:
&
(onde e s ao os n umeros correspondentes aos dias e ), e portanto 7 e um divisor % 5 . Mas 5 n de ao e divis vel por 7 nem o e % (pois esses s ao dois inteiros
% 9 5
97
n ao-negativos menores que 7 diferentes). Como 7 e um primo, isso e uma contradic a o. Dessa maneira podemos falar sobre n umeros ordin arios ao inv es dos dias da semana; o prec o que pagamos e que temos que usar congru encias ao inv es de igualdade.
6.36 Ache Qua/Sex; Ter/Sex; Seg/Ter; Sab/Ter.
H a algo especial a respeito do n umero 7 aqui? Em uma sociedade onde a semana consiste de 10 ou 13 ou 365 dias, poder amos denir adic a o, subtrac a o e multiplicac a o dos dias da semana de maneira semelhante. Seja o n umero de dias da semana, que em linguagem matem atica chamamos de modulus. Seria impratic avel introduzir novos nomes para os dias da semana, 1 por# % ! . A barra superior indica que por tanto vamos simplesmente cham a-los # !# 1 , dia 1 1 etc. ao apenas ao dia 2, mas tamb em ao dia exemplo 1 se refere n Adic a o e denida por , onde e o resto de m odulo . Multiplicac a o e subtrac a o s ao denidas de uma maneira semelhante. Dessa forma temos um novo sistema num erico: ele consiste apenas de n umeros, e as operac o es aritm eticas b asicas podem ser realizadas. Essas operac o es obedecer ao as leis b asicas da computac a o, que 6 acima. Essa vers segue tal qual no caso ao da aritm etica e chamada de aritm etica modular. E a divis ao? Se voc e ler cuidadosamente a prova de que podemos fazer divis ao 6 , voc quando e v que ela usa uma propriedade especial de 7: que ele e um primo! H a de fato uma diferenc a substancial entre aritm etica modular com moduli 2 primos e n ao-primos. No que segue, restringiremos nossa atenc a o ao caso em que o modulus e um primo, e para enfatizar isso, represent a-lo-emos por . Esse sistema num erico con% ! , com as quatro operac sistindo de # !@# o es denidas como acima, e chamado de corpo primo.
&
)))
& &
0 &
) ))
O corpo de 2-elementos. O menor n umero primo e 2, e o corpo primo mais simples f tem apenas 2 elementos, e ! . E acil dar as t abuas de adic a o e multiplicac a o: +
! !
! !
(H a realmente apenas uma operac a o aqui que n ao segue das propriedades gerais de 0 ! e 1, a saber ! . N ao h a necessidade de especicar a t abua de subtrac a o, pois E% para todo e (conra!), nem a t nesse corpo abua de divis ao, pois essa e o bvia: n ao podemos dividir por , e dividir por ! n ao muda o dividendo.) inconveniente escrever todas essas barras sobre os n E umeros, portanto frequentemente as omitimos. Mas ent ao temos que ser cuidadosos, porque temos que saber ! signica 2 ou 0; por conseguinte modicamos o sinal de adic se ! a o, e usamos para a adic a o no corpo de 2-elementos. Nessa notac a o, as t abuas de adic a o e de multiplicac a o cam assim:
& % &
&
1 Em
2 Plural
98
0 1
0 0 1
1 1 0
9
0 1
0 0 0
1 0 1
(n ao tivemos que introduzir um novo s mbolo de multiplicac a o, porque a t abua de multiplicac a o para 0 e 1 e a mesma no corpo de 2-elementos que a usada para n umeros ordin arios). Esse corpo e muito pequeno mas muito importante, porque bastante da ci encia da computac a o, teoria da informac a o e l ogica matem atica o usa: seus dois elementos po dem ser interpretados como SIMNAO, VERDADEIROFALSO, SINALSEM SINAL etc.
6.37 Suponha que 0 signique FALSE e 1 signique TRUE. Sejam e dois enunciados (que s ao verdadeiros ou falsos). Expresse, usando as operac o es e , a veracidade de n ao , ou , e . 6.38 Seja 6 o modulus; mostre por meio de um exemplo que divis ao por um n umero n ao-zero nem sempre poder ser realizada. Generalize o exemplo para todo modulus composto.
Divis ao em aritm etica modular. Nosso argumento de que divis ao em aritm etica modular pode ser realizada desde que o modulus seja um primo foi razoavelmente simples mas ele n ao nos disse como realizar a divis ao. Para achar o quociente dessa operac a o 6 , mas seria preciso olhar para todos os n umeros entre e % ! , o que era OK para seria um tanto tedioso para um primo como 1 2 8 5 1 6 (sem falar nos primos realmente enormes usados em criptograa e seguranc a de computadores, como veremos). Portanto como dividimos, digamos, 52 por 1 m odulo 234527? Podemos simplicar o problema, e simplesmente perguntar sobre dividir ! por 1 5@2 9 , que m odulo 234527. Se temos que ! 1 , ent ao podemos obter 52 1 sabemos como computar. Nesse ponto a prova pode ser explicada melhor no caso geral, Um modulus primo % ! ) nos s e um inteiro ( ! ao dados, e desejamos encontrar um inteiro ( % ! ! . Usando a notac ( ) tal que a o de congru encia da sec a o 6.7, podemos escrever isso como
A chave para resolver esse problema e o Algoritmo de Euclides. Vamos computar o m aximo divisor comum de e . Isso parece bobagem, pois sabemos a resposta imediatamente: e um primo e ! eles n ao podem ter qualquer # , portanto ! . Mas lembre-se que o Algoritmo divisor comum maior que 1, e portanto , onde de Euclides d a mais: ele fornecer a o m aximo divisor comum na forma e s ao inteiros. Por conseguinte obtemos
"
!#
&
&
99
Estamos quase l a; o u nico problema e que um inteiro pode n ao estar entre ! e % ! . Mas se for o resto de m odulo , ent ao multiplicando a congru encia por (recordemos da Section 6.7 que essa e uma operac a o legal sobre congru encias), obtemos ! #
% ! , isso resolve nosso problema. e como 1 e seguir esse algoritmo em cima do nosso exemplo acima, com Vamos 1 2 8 5 1 6 . O Algoritmo de Euclides funciona de modo realmente simples nesse
caso: divida 1 2 8 5 1 6 por 1 com resto, e o resto j a chega em 1. Isso d a
19 %'!$!C6 1@A 2 ! 1
m odulo 234527.
&
1 2 8 5 1 6 9 ! !!C6 1@A8
!)
6.39 Compute
Uma vez que sabemos como fazer aritm etica b asica, tarefas mais complicadas como resolver equac o es lineares podem ser feitas lembrando o que far amos com n umeros ordin arios. Ilustramos isso por meio de alguns exemplos onde usamos a notac a o de congru encia juntamente com suas propriedades b asicas da sec a o 6.7. Exemplo 1. Considere uma equac a o linear, digamos
onde o modulus e 8 6 (verique na tabela que esse e um primo!). Podemos reescrever isso como uma congru encia:
& 2 #
&
6
8 6
Essa segunda forma e a mais usual, portanto vamos trabalhar com ela. Tal qual far amos com uma equac a o, transformamos essa em
% 2
8 6
(poder amos substituir % 2 por seu resto 8$8 m odulo 8 6 , n umeros positivos, mas isso e opcional). A seguir temos que encontrar o inverso de 6 m odulo 8 d a
6 #8 6
6#35 %
1 #75 8 6
6 . O Algoritmo Euclideano
1 #&!
!#
5 !
8 6 % A9 6# 5% 19 1
8 6
6 % 5
6 %
% A9 6
19 6 9 6 % 8 6
% A9 6
6 9 6 % 8 6#
2 9&8 6 % 1
9 6#
100
! que mostra que % 1 odulo 8 6 e % 1 9 6 8 6 . Portanto o inverso de 6 m 6 (que novamente poder amos escrever como 1 ). Agora dividindo ambos os lados de (6.3) por 6 , que e o mesmo que multiplicar ambos os lados por 1 6 , obtemos
!2
8 6
m odulo
Exemplo 2. A seguir, vamos resolver um sistema de duas equac o es lineares, com duas vari aveis. Tornaremos os n umeros um pouco maior, para ver que podemos lidar ! 1 6 , e considere as com n umeros grandes tamb em. Suponha que o modulus seja equac o es
! 1 1 ! 1 1
1 2
(6.4)
& 2!
& B$D
! 6 1 ! 1 6
a. Elimine uma vari avel. Como resolver amos esse sistema se essas fossem equac o es comuns? Poder amos multiplicar a segunda equac a o por 6 e subtra -la da primeira, para eliminar os termos em . Podemos fazer isso nesse corpo primo tamb em, e obter
24!%
ou
% 5 2
A9&B$D 5
1 % A9 1 2 %'!2 A
! 6 # 1
! 6 1
)
(6.5)
Podemos substituir esses n umeros negativos por seus restos m odulo 127, para obter
!$! B
! 6 1
Divis ao. A seguir, desejamos dividir a equac a o por 5. Isso e o que discutimos acima: temos que usar o Algoritmo de Euclides. A computac a o do m aximo divisor comum e f acil:
! 1 6 #75
1 #35
1 #! ! )
Isso n ao traz nada de novo: sab amos de antem ao que esse m.d.c. ser a 1. Para obter mais, temos que dar prosseguimento a essa computac a o por meio de uma outra, enquanto que cada n umero e escrito como um inteiro m ultiplo de ! 1 6 mais um inteiro 5 m ultiplo de :
! 6#35 1
! 6 % 5 54#35 1 1 9
% 1 9 !1 6 &
! 6 % 5 5# % 1 1 9 1
5! 9 5
9!16 &
5! 9 5
!$#
!)
101
! ! 1 6 , e portanto encontramos o inverso de 5 Por conseguinte 5 9 5! m odulo 127. Ao inv es de dividir a equac a o (6.4) por cinco, multiplicamos por seu inverso 51, para obter (5! 9 !$! B ! 1 6 (6.6)
Conclus ao. Se calcularmos o lado direito de (6.6) e ent ao computar seu resto m odulo ! 1 6 , ou, em outras palavras, 8$D 8$D e 127, obtemos que sua soluc a o. Para obter , temos que substituir esse valor de volta nas equac o es originais:
da
&
B$D9 8$D
1 2
1 2% B$D9 8$D
!
6
! 6 # 1
! 6 1
Portanto, temos que fazer uma divis ao a mais. Similarmente ao que obtivemos acima, obtemos
% A 2 9 1%&
! A8'9 ! 6
e portanto
A@89 1
! 1 6
!#
! 6 1
Logo, ao inv es de dividir por 2, podemos multiplicar por 64, para obter
!$!C6 Computando o lado direito e seu resto m odulo 127, obtemos que ! 6 ! ! C 6 1 , ou, em outras palavras, . Por conseguinte, resolvemos (6.4).
Exemplo 3. Podemos at e resolver algumas equac o es quadr aticas; por exemplo,
) )
! 6 1
& 1 5@2 ) Podemos escrever isso como % ! % 1 5@2 ) Um no lado esquerdo tem que ser congruente a 0 m odulo 52 , da ou ! dos 5@2 fatores ou 1 5@2 . Aqui encontramos uma maneira de escrever o lado esquerdo como um produto somente olhando temos equac a o com n umeros maiores, para ele. O que acontece se 2 uma digamos & !2 8 54!C6 & ! 552 A 1 8 5 1 6 ? Duvidamos que algu em possa
% 2
adivinhar uma decomposic a o. Nesse caso, podemos tentar seguir o procedimento da escola secund aria para resolver equac o es quadr aticas. Isso funciona, mas um passo dele e um tanto dif cil: achar ra zes quadradas. Isso pode ser feito ecientemente, mas o algoritmo e complicado demais para ser inclu do aqui.
6.40 Resolva o sistema de congru encias
7 F 1 F
1 1 1 1
4H7 B
1 1
102
7
)))
)))
)))
"
)))
Portanto encontramos um subconjunto especial dos n umeros # # # , a saber # # # , cuja soma e divis vel por ) . E isso e o que desej avamos provar.
)))
)))
. Prove que podemos sempre enconumeros do conjunto @ 773 & 6.42 S ao dados n trar dois n umeros entre esses n umeros que s ao primos entre si.
Como uma aplicac a o muito importante da inclus aoexclus ao, vamos responder a ` seguinte pergunta sobre n umeros: Quantos nu e! 1 que s ao primos meros existem at em relac a o a ! 1 ? Como sabemos a fatorac a o prima de 1200 e : ! 1 1 9 2 9 5 , por conseguinte, sabemos que os n umeros divis veis por quaisquer de 2, 3, ou 5, s ao precisamente aqueles que t em um divisor comum com 1200. Portanto estamos interessados em contar os inteiros positivos menores que 1200, e que n ao sejam divis veis por quaisquer de 2, 3, ou 5. Pode-se facilmente calcular que at e 1200, existem
! 1
103
! 1
! 1 5
Aqueles n umeros divis veis por ambos 2 e 3 s ao exatamente aqueles que s ao divis veis por 6. Por conseguinte, at e 1200 existem
! 1 ! 1 ! 1
A !
e, de modo semelhante, existem n umeros divis veis por 2 e 5, n umeros divis veis por 3 e 5.
!C5
Finalmente os n umeros divis veis por todos entre 2, 3, 5 s ao precisamente aqueles que s ao divis veis por 30; portanto existem
! 1 2
Agora com esses dados, podemos usar a inclus ao-exclus ao para computar o n umero que estamos procurando:
! 1
8
%
! 1 1
8
&
! 1 2
&
% 2 !
! 1 5
8
& &
! 1
! 1 19 2
& &
!
! 1 1 9 5
8
&
!
! 1 % 2 9 5
! 1 19 2 9 5
8
2 1
)
Se puxarmos 1200 para fora do lado esquerdo da igualdade acima, o que resta pode ser transformado numa bela forma de produto (conra os c alculos!):
! 1
8
!%
! 1 ! 1
% 5
9
19 2
!%
2 9 5 19 5 19 2 9 5 ! ! ! % !% 2 9 5
&
Seja ) um n umero natural. Representamos por ) o n umero daqueles n umeros que n ao s ao maiores que ) , e s ao primos em relac a o a ) (usamos aqui n ao maior, ao ! , pois esse e inv es de menor, o que tem signic ancia apenas se ) ou nico caso em ! ). que o n umero propriamente dito e primo em relac a o a si pr oprio; portanto ! Primos, obviamente, t em o maior n umero de primos em relac a o a eles: se e um % !. primo, ent ao todo inteiro positivo menor e contado em , portanto Em geral, o n umero ) pode ser computado tal qual zemos no caso concreto acima: se # # # s ao fatores primos diferentes de ) , enta o
)))
) 9
!%
!%
9 9
)))
!%
(6.7)
A prova segue os c alculos acima, e e dada como exerc cio 6.43. 104
6.43 Prove (6.7). 6.44 Seja um n umero natural. Computamos de todo divisor de , e ent ao adicionamos todos esses n umeros. Qual e a soma? (Experimente, formule uma conjectura, e prove-a.) 6.45 Somamos todos os inteiros positivos menores que mos? a o a . Que obte e primos em relac
3 A4 1
6.46 Prove a seguinte extens ao do Pequeno Teorema de Fermat: se 4 e divis vel por . [Dica: generalize a prova do Pequeno Teorema de Fermat no exerc cio 6.18.]
3 C
1 , entao
)))
) )) ) ))
O Teste de Fermat. Da , como sabemos que esse n umero e um primo? Bem, nosso computador nos diz, mas como o computador sabe? Uma abordagem e oferecida pelo Pequeno Teorema de Fermat. Seu caso n ao trivial mais simples diz que se e um % 1 . Se assumimos que e 1 ), mpar (que apenas exclui o caso primo, ent ao 1 ent ao tamb em sabemos que 1 % ! . O que acontece se vericarmos a relac a o de divisibilidade ) 1 % ! para n umeros compostos? Ela obviamente falha se ) e par (nenhum n umero par e divisor de um n umero mpar), portanto vamos restringir nossa atenc a o a n umeros mpares. Aqui v ao alguns resultados:
! A #2 B 4 2 # !# 8B #356@54# 1 % ! 1 ! 1 % ! ! A #76$ 6 6# 1 C ! 5 1 5 1 % ! Isso sugere que talvez poder amos testar se o n umero ) e ou n ao um primo vericando se a relac a o ) 1 % ! se verica ou n ao. Essa e uma o tima id eia, mas ela tem v arias
D 1
% !
1 5$5#
!C5
f 1 % ! , mas e Como computar pot encias GRANDES? E acil escrever a f o rmula uma coisa bem diferente comput a-la! Parece que para obter 1 , temos que multipli passos, car 2 ) % 1 vezes por 1 . Para um n umero de ! -d gitos ) , isso e cerca de ! o que nunca seremos capazes de realizar.
limitac o es s erias.
8
105
Mas, podemos ser espertos quando computamos 1 . Vamos ilustrar isso no exemplo de 1 : poder amos comec ar com 1 a-lo ao quadrado, para obB , elev A1 , elev 8 DA , e elev ter 1 a-lo ao quadrado novamente para obter 1 a-lo ao ! A #76$66# 1 ! A . Ao inv quadrado uma vez mais para obter 1 es de 1 2 multiplicac o es, precisamos de apenas 5 . vel por pot encia t ao Parece que esse truque apenas funcionou porque 1@8 era divis grande de 1 , e pudemos computar 1 pela elevac a o ao quadrado repetida, comec ando a partir de um n umero pequeno. Portanto vamos mostrar como fazer um truque semelhante se o expoente e um inteiro menos amig avel, digamos 29. Aqui est a uma maneira de computar 1 :
8 # 1
B # 1
A@8 # 1 1
1@AB # 8 2$5# 8 5 A #
! 1@B #
5@2 A # B 6 # D ! 1
1
! A 3 #2 B 8 #
talvez melhor ler essa seq E ue ncia de tr as para frente: se temos que computar uma encia anterior por 1 ; se temos que pot encia mpar de 1 , a obtemos multiplicando a pot computar uma pot encia par, a obtemos elevando ao quadrado a pot encia menor apropriada.
6.47 Mostre que se tem multiplicac o es.
7
Como evitar numeros GRANDES? Mostramos como suplantar a primeira diculdade; mas as computac o es acima revelam a segunda: os n umeros cam grandes de ao e mais! Vamos supor que que ) tem 100 d gitos; ent ao 1 n apenas astron omico: o n umero de seus d gitos e astron omico. Nunca poder amos escrev e-lo, imagine vericar se ele e divis vel por ) . A sa da e dividir por ) assim que obtivermos qualquer n umero que seja maior que ao (ou poder amos dizer que trabalha) , e simplesmente trabalhar com o resto da divis mos em aritm etica modular com modulus ) ; n ao teremos que fazer divis oes, portanto ao tem que ser um primo). Por exemplo, se desejamos vericar se 1 5 1 % ! , ent ao ) n temos que computar 1 . Como acima, comec amos computando 1 ao eleve-o B , ent ao quadrado para obter 1 ao A@8 . Substituimo-lo imediatamente pelo resto da divis elevando 1 ao quadrado, mas ao inv A@8 1 5 , que e ! 8 . Ent ao computamos 1 es disso elevamos ! 8 ao quadrado para obter ! DA , que substituimos pelo resto da divis ao ao quadrado, mas ao inv ! D$A 1 5 , que e 1 ! . Finalmente, obtemos 1 elevando 1 es ! ! disso elevamos 1 ao quadrado para obter 8$8 , e a dividimos isso por 1 5 para obter o ! 5 n resto ! A . Como ! A % ! ao e divis vel por 1 5 , segue que 1 5 n ao e um primo. Isso n ao parece uma conclus ao impressionante, considerando a trivialidade do resultado, mas isso foi apenas uma ilustrac a o. Se ) tem ao como & bits na base 1 , ent vimos, leva apenas 1 & multiplicac o es para computar 1 , e tudo o que temos que fazer e uma divis ao (com resto) em cada passo para manter os n umeros pequenos. Nunca temos que lidar com n umeros maiores que ) . Se ) tem ! d gitos, ent ao ) tem ! DD ou 1 n ao e muito divertido multiplicar a ` m ao, mas um tanto administr avel por computador.
8
106
Pseudoprimos. Mas aqui vem a terceira limitac a o do teste de primalidade baseado no Teorema de Fermat. Suponha que um teste para um n umero ) . Se ele realizamos % ! ), ent falha (isto e , ) n ao e um divisor de 1 ao e claro que sabemos que ) n ao e um primo. Mas suponha que encontramos que ) 1 % ! . Podemos concluir que ) e um primo? O Teorema de Fermat certamente n ao justica essa conclus ao. Existem sim. O n umeros compostos ) para os quais ) 1 % ! ? Infelizmente, a resposta e !! 9 2 ! . Esse n menor desses n umeros e 2 8 ! ao e um primo mas satisfaz
2 8 ! 1
% !
(6.8)
(Como sabemos que essa relac a o de divisibilidade se verica, sem computac a o suciente argumentar que extensiva? Podemos usar o Pequeno Teorema de Fermat. E ambos 11 e 31 s ao divisores de 1 % ! , pois ent ao seu produto tamb em o e , 11 e 31 sendo primos diferentes. Pelo pequeno teorema de Fermat
!! 1 % ! 1
Logo
) )
% ! 1 % !
!! 1
% !
) )
Para 31, n ao precisamos do Teorema de Fermat, mas apenas do exerc cio (6.6) novamente: 2 ! 1 % ! 1 % !
Isso prova (6.8).) Tais n umeros, que n ao s ao primos mas se comportam como primos no sentido de que o Pequeno Teorema de Fermat com base 2 se torna verdadeiro para eles, s ao chamados pseudoprimos (primos de mentira). Enquanto que eles s ao um tanto raros (existem apenas 22 deles entre 1 e 10.000), eles realmente mostram que nosso teste de primalidade pode dar um falso positivo, e por conseguinte (em um sentido matem atico estrito) ele n ao e um teste de primalidade de forma alguma. (Se podemos suportar cometer um erro de vez em quando, ent ao podemos viver com o teste simples de Fermat com base 2. Se o pior que pode acontecer quando um n umero composto que se acredita seja primo e que um jogo de computador caia, podemos arriscar isso; se a seguranc a de um banco, ou um pa s, depende de n ao se usar um primo de mentira, temos que encontrar algo melhor.) Uma id eia que vem resgatar e que ao usamos a forc a total do Teorema de Fermat: n podemos tamb em vericar que ) 2 % 2 , ) 5 % 5 , etc. Esses testes podem ser realizados usando os mesmos truques que os descritos acima. E na verdade j a os primeiros desses descartam o primo de mentira 341: ele n ao e um divisor de 2 % ! . A observac a o a seguir nos diz que isso sempre funciona, pelo menos se somos sucientemente pacientes:
107
!# 1 # 2 #
)) ) # )
% !.
O Teorema de Fermat nos diz que primos realmente passam no teste de Fermat para ) % !, toda base. Por outro lado, se ) e composto, ent ao existem n umeros , ! que n ao s ao primos em relac a o a ) , e todos os tais falham no teste de de fato, Fermat: , portanto ele ) um divisor primo comum de e , ent a o e um divisor de se e n a pode ser um divisor de % ! , e por conseguinte ) n ao pode ser um divisor de o % ! . Mas esse Teste Geral de Fermat n ao e sucientemente eciente. Imagine que nos e dado um n umero natural ) , com algumas centenas de d gitos, e desejamos testar se ele e ou n ao um primo. Podemos realizar o teste de Fermat com base 1 . Suponha que ele passe. Ent ao podemos tentar base 2 . Suponha que ele passe novamente, etc. Quanto tempo temos que continuar antes que possamos concluir que ) e um primo? Olhando para o argumento acima que justifa o Teste Geral de Fermat, vemos que n ao temos f que continuar al em do primeiro n umero tendo um divisor comum com ) . E acil ver que o menor desses n umeros e o menor divisor primo de ) . Por exemplo, se ) , onde e s ao primos distintos, tendo digamos ! d gitos cada (portanto ) tem ! DD ou 1 d gitos), ent ao temos que tentar tudo at e o menor de e , que e mais que ! tentativas, o que e desesperadamente grande. (E al em do mais, se vamos t ao longe, de qualquer forma, podemos fazer um teste simples de divisibilidade, sem necessidade de nada sosticado como o Teorema de Fermat!) Ao inv es de comec ar com 2, poder amos comec ar vericando se o Teorema de Fermat se verica com qualquer outra base ; por exemplo, poder amos escolher um inteiro aleat orio na faixa ! ) % ! . Sabemos que ele falha se atingimos qualquer que n ao e primo em relac a o a ) . Isso nos d a uma boa chance de descobrir se ) n ao e um primo? Isso depende de ) , mas certos valores de ) s ao denitivamente f ruins. Por exemplo, suponha que ) onde e s ao primos diferentes. E acil listar aqueles n umeros que n ao s ao primos em relac a o a ) : esses s ao os m ultiplos # % ! # 7 ) e os m # % ! # ). O n de ( # 1 # ultiplos de ( # 1 # umero % ! ) ocorre em ambas as listas). Esse total de tais n umeros e (pois , mas menor que 1'9 ! , e portanto a probabilidade de n umero e maior que 1E9 ! que atinjamos um desses n umeros quando escolhemos um aleat orio e menor que
$
8
$
)) ) $
A$
$ &
19 ! !
$ $ $ ) )) $ 19 ! #
$ A$
o que mostra que esse evento tem uma probabilidade demasiado pequena de sequer acontecer na pr atica. Numeros de Carmicheal. Nossa pr oxima esperanc a e que talvez para um n umero composto ) , o Teste de Fermat falhar a muito mais cedo que seu menor divisor primo, ou ent ao, para uma escolha aleat oria de , ele falhar a para muitos outros n umeros al em daqueles n ao primos em relac a o a ) . Infelizmente, isso n ao e sempre o caso. Existem inteiros ) , chamados n umeros de Carmicheal, que s ao ainda piores que pseudoprimos: eles passam no teste de Fermat para toda base prima em relac a o a ) . Em outras palavras, eles satisfazem % !
108
# ! . O menor desses n 5 A ! . Embora que para todo tal que umeros e ) ) tais n umeros sejam muito raros, eles realmente mostram que o teste de Fermat n ao e completamente satisfat orio.
O teste de MillerRabin. Mas no nal dos anos 1970, M. Rabin e G. Miller encontrarmo uma maneira muito simples de fortalecer o Teorema de Fermat s o um pouquinho, e dessa forma suplantar a diculdade causada pelos n umeros de Carmicheal. Illustramos o m etodo sobre o exemplo de 5 A ! . Usamos um pouco de matem atica da % ! ! , para fatorar o n umero escola secund aria, a saber a identidade % ! % ! :
% !
&
Agora suponha que 5 A ! fosse um primo. Ent ao pelo Pequeno Teorema de Fermat, ele tem que dividir % ! , qualquer que seja . Se um primo divide um produto, ele divide um dos fatores (exerc cio 6.9), e portanto pelo menos uma das relac o es 5 ! % ! 5 ! ! 5 ! ! 5 ! ! 5 ! !
% ! % ! & % ! &
% !
&
& &
pudermos. Ent ao testamos se um dos fatores tem que ser divis vel por ) . Se o teste falha, podemos ter certeza de que ) n ao e um primo. Mas o que acontece se ele e bem sucedido? Infelizmente, isso ainda pode acontecer mesmo se ) for composto; mas o ponto crucial e que esse teste da um falso positivo com probabilidade menor que ! 1 (lembre-se que escolhemos um aleat orio). Chegando a uma conclus ao errada metade das vezes n ao soa t ao bom; mas podemos repetir o experimento v arias vezes. Se o repetirmos 10 vezes (com um novo, aleatoriamente escolhido a cada vez), a probabilidade de um falso positivo e menor ! ! que 1 (pois para concluir que ) e primo, todas as 10 tentativas t em que dar um falso positivo, independentemente uma da outra). Se repetirmos o experimento ! , que e 100 vezes, a probabilidade de um falso positivo cai abaixo de 1 astronomicamente pequena. Portanto esse algoritmo, quando repetido com freq ue ncia suciente, testa primalidade com probabilidade de erro que e muito menor que a probabilidade de, digamos, falha de hardware, e por conseguinte ele e um tanto adequado para prop ositos pr aticos. largamente usado em programas como Maple ou Mathematica e em criptograa. E
& tem que se vericar. Mas j a para o es se verica. 1 , nenhuma dessas relac O teste de MillerRabin teste e uma elaborac a o dessa id eia. Dado um inteiro mpar escolhemos um inteiro da faixa ) ! que desejamos testar para primalidade, ) % ! aleatoriamente, e consideramos % . Fatoramo-lo como % ! , % ! % ! & ! , ate onde e a continuamos a fator a-lo, usando a identidade
A A A A A
&
&
" 8
"
Suponha que testemos a primalidade de um n umero ) e encontramos que ele e f composto. Ent ao gostar amos de achar sua fatorac a o prima. E acil ver que ao inv es disso, poder amos pedir menos: para uma decomposic a o de ) no produto de dois inteiros positivos menores: ) . Se tivermos um m etodo de encontrar tal decomposic a o
109
ecientemente, ent ao podemos continuar e testar a primalidade de e . Se eles forem primos, encontramos a fatorac a o prima de ) ; se (digamos) n ao e um primo, podemos usar nosso m etodo de encontrar uma decomposic a o de no produto de dois inteiros ) menores etc. Como ) tem no m a ximo fatores primos (exerc cio 6.10), temos que repetir isso no m aximo menos que a sua quantidade de bits). ) vezes (que e Mas infelizmente (ou felizmente? veja o Cap tulo 15 sobre criptograa) n ao se conhece um m etodo eciente de se escrever um n umero composto como um produto de dois inteiros menores. Seria muito importante encontrar um m etodo eciente de fatorac a o, ou dar uma prova matem atica de que nenhum tal m etodo existe; mas n ao sabemos qual e a resposta.
e um n umero de Carmicheal; mais exatamente, mostre , 6.48 Mostre que que para todo inteiro . [Dica: como , basta provar que , e . Prove essas relac o es separadamente, usando o m etodo da prova do fato de que .]
1 102 27 3 4 41 3
1 1 01
23
43 1 102 3
102 3 ! 4 3
4 1
1 ou 4%1 se dividido por 6. 1 , e B . Prove que 3 4 1D2 3 4 1 se e somente se 2 . 6.52 Suponha que 3 nao podem ser todos primos. Eles podem ser , ent 6.53 Prove que se 3 ao 3 , 3'F 7 e 3 F
6.51 Prove que todo primo maior que d a um resto de
E ( $ B e 3 E 2 C E ent ao 352 C . ao 352 C F E F7 E . 6.50 Prove que se 3A2 C e 3A2 E , ent
6.49 Prove que se
6.54 Quantos inteiros existem que n ao s ao divis veis por qualquer que seja o primo maior que 20 e n ao s ao divis veis pelo quadrado de qualquer que seja o primo? 6.55 Ache a fatorac a o prima de (a)
; (b)
7B
.
6.56 Mostre que um n umero com 30 d gitos n ao pode ter mais que 100 fatores primos. 6.57 Mostre que um n umero com 160 d gitos tem uma pot encia de primo como divisor que e pelo menos 100. Isso n ao e verdadeiro se desejamos um divisor primo que seja pelo menos . 6.58 Encontre o n umero de divisores (positivos) de , para ( (exemplo: 6 tem 4 divisores: 1,2,3,6). Quais desses n umeros t em um n umero mpar de divisores? Formule uma conjectura e prove-a. 6.59 Ache o m.d.c. de 100 e 254, usando o Algoritmo Euclideano.. 6.60 Encontre pares de inteiros para os quais o Algoritmo Euclideano leva (a) 2 passos; (b) 6 passos.
7B
1BB
110
6.61 Retomando os n umeros de Lucas cio 4.14, prove o seguinte: introduzidos no Exerc (a) @ ; ao e um m ultiplo de , ent ao ; (b) se n . (c)
7
(7
6.62 Prove que para todo inteiro positivo existe um n umero de Fibonacci divis vel por (bem, obviamente, e divis vel por qualquer queremos dizer um maior que esse). 6.63 Encontre inteiros e tais que 6.64 Encontre inteiros e tais que
(B
7 F 1 ' 1 .
1 7 F 4 & 1
e irracional.
6.66 Prove que as duas formas do Teorema de Fermat, Teorema 6.5.1 e (6.1), s ao equivalentes. 6.67 Mostre que se
6.68 Suponha que nos s ao dados n umeros do conjunto dois n umeros entre eles tais que um divide o outro.
F#1
F 1 7
6.69 Qual e o n umero de inteiros positivos n ao maiores que 210, n ao divis veis por 2,3 ou 7?
111