You are on page 1of 35

Cap tulo 6

Inteiros, divisores, e primos


Neste cap tulo discutimos propriedades de inteiros. Essa a rea da matem atica e chamada teoria dos n umeros, e e um campo verdadeiramente vener avel; suas ra zes est ao l a atr as cerca de 2500 anos, bem no in cio da matem atica grega. Poder-se-ia pensar que ap os 2500 anos de pesquisa, saber-se-ia essencialmente tudo sobre o assunto. Mas veremos que isso n ao e o caso: existem quest oes muito simples e naturais que n ao podemos responder; e existem outras quest oes simples e naturais para as quais uma resposta somente foi encontrada nos u ltimos anos!

6.1 Divisibilidade de inteiros

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

    



 # !  " % ' $ &(0)

  

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

102 3 , 4%102 3 , 352 3 e 6 4 352 3

para todo inteiro .

782 3 ; (b) 7@9A3 ; (c) B82 3 .

352 C e D C 2 E entao 3A2 E ; 352 C e 5 3 2 E entao 352 CGFE e 5 3 2 C@4HE ;


77

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

6.2 Os primos e sua hist oria


Um inteiro "! e chamado um n umero primo se ele n ao e divis vel por qualquer inteiro diferente de !$#&%'!$# e % . Uma outra maneira de dizer isso e que um inteiro (! e um primo se ele n ao pode ser escrito como o produto de dois inteiros positivos menores que ele. Um inteiro ) 0! que n ao e um primo e chamado composto (o n umero ! e considerado nem primo, nem composto). Por conseguinte, 1 #324#354#76#&!! s ao 2 9 2 ,! 19@1 , A 19 2 , B 1'9C8 , D 1E9 5 n primos, mas 8 ao s ao primos. A tabela 6.1 mostra os primos at e5 . Os primos t em fascinado as pessoas desde os tempos antigos. Sua seq ue ncia parece muito irregular, e mesmo assim sob inspec a o mais pr oxima ela parece carregar uma porc a o de estrutura escondida. Os gregos antigos j a sabiam que existe uma quantidade innita de tais n umeros. (N ao apenas eles sabiam isso; eles o provaram!) N ao era f acil provar quaisquer fatos adicionais sobre primos. Sua seq ue ncia e razoavelmente suave, mas ela tem buracos e focos densos (veja a Figura 6.1). Qu ao grande s ao tais buracos? Por exemplo, existe um n umero primo com um n umero dado qualquer de d gitos? A resposta a essa quest ao ser a importante para n os quando discutirmos sobre criptograa. A resposta e na armativa, mas esse fato n ao foi provado at e meados do s eculo XIX, e muitas quest oes semelhantes est ao abertas ainda hoje.



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.

o em primos 6.3 Fatorac a


Vimos que todo inteiro maior que ! que n ao e um primo ele pr oprio pode ser escrito como um produto de primos. Podemos mesmo dizer que todo inteiro positivo pode ser escrito como um produto de primos: primos podem ser considerados como produtos com um fator, e o inteiro ! pode ser pensado como o produto vazio. Com isso em mente, podemos enunciar e provar o seguinte teorema, anunciado acima, a ` s vezes chamado de Teorema Fundamental da Teoria dos N umeros. Teorema 6.3.1 Todo inteiro positivo pode ser escrito como o produto de primos, e essa fatorac a o e u nica a menos da ordem dos fatores primos. Prova. Provamos esse teorema por meio de uma vers ao da induc a o, que e a ` s vezes chamada de argumenteo do criminoso m nimo. A prova e indireta: Supomos que a asserc a o e falsa, e usando essa suposic a o, derivamos uma contradic a o l ogica. Portanto assumimos que existe um inteiro com duas fatorac o es diferentes; chame tal inteiro um criminoso. Pode haver muitos criminosos, mas consideramos o menor deles. Sendo um criminoso, esse tem pelo menos duas fatorac o es diferentes:

9 9

)) )@9 $9$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.

Essa asserc a o e obviamente errada. Onde est a o erro na prova?

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,

'9 3 . Prove que

(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.10 Prove que a fatorac a o prima de um n umero  cont em no m aximo

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  .

6.4 Sobre o conjunto de primos


O teorema seguinte era conhecido de Euclides no s eculo III a.C. Teorema 6.4.1 Existe uma quantidade innita de primos. Prova. O que precisamos fazer e mostrar que para todo inteiro positivo ) , existe ! , e qualquer um n umero primo maior que ) . Para esse m, considere o n umero )%$ ) . Novamente, usamos uma prova indireta, divisor primo dele. Mostramos que ) e derivando uma contradic ) ent supondo que a o. Se ao )%$ , pois ele e um dos inteiros cujo produto e )%$ . Sabemos tamb em que )%$ ! , e portanto e um divisor ! . Mas isso e da diferenc a )%$ ! % )%$ imposs vel, e por conseguinte tem que ser maior que ) .

&

&

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

Figura 6.2: O grafo de    de a

1 1BB

83

300 250 200 150 100 50 0 400 800 1200 1600 2000

Figura 6.3: O grafo de    de a

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 !

)) ) .

) ! car a arbitrariamente pr oximo a se ) for sucientemente grande.)


A prova do teorema do n muito dif cil; o fato de que o n umero de umero primo e primos at e) e cerca de ) eculo XVIII, mas ) foi observado empiricamente no s levou mais de 100 anos at e que Hadamard e de la Vall ee Poussin o provaram em 1896. Como uma ilustrac a o do uso desse teorema, vamos encontrar a resposta a uma quest ao que pusemos na introduc a o: quantos primos com (digamos) 1 d gitos exis do n tem? Obtemos a resposta subtraindo o n umero de primos at e ! umero de



84

primos at e!

 . Pelo Teorema do N umero Primo, esse n umero e cerca de     ! !    %  !$# D 5 9 !   )


1 ! ! DD !

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

6.14 Mostre que entre os n umeros de -d gitos, um em cada @

e um primo.

6.5 O Pequeno Teorema de Fermat

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

.
&

Prova. Sabemos pelo teorema 1.8.1 que


&

% ! 98% )) ! )@ 9 9 )) )@9 ! & )




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 %

& &

e tamb em divis vel por , o que completa a induc a o.

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

6.6 O Algoritmo Euclideano


At e agora, discutimos diversas noc o es e resultados relativos a inteiros. Agora voltamos nossa atenc a o para a quest ao de como fazer c alculos em conex ao com esses resultados. Como decidir se um dado n umero e ou n ao um primo? Como encontrar a fatorac a o prima de um n umero? Podemos fazer aritm etica b asica: adic a o, subtrac a o, multiplicac a o, divis ao com resto ecientemente, e n ao discutiremos isso aqui. A chave para uma teoria dos n umeros algor tmica mais avanc ada e um algoritmo que computa o m aximo divisor comum de dois inteiros positivos e . Isso e denido como o maior inteiro positivo que e um divisor de ambos. (Como ! e sempre um divisor comum, e nenhum divisor comum e maior que qualquer dos dois inteiros, essa

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

6.19 Mostre que se

6.20 (a) Prove que  

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

s ao inteiros positivos com

3 C

352 C , entao  3 C 3 .



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 #! B ! 1 # A A ) B !  !#!   !#&!   ! ) #755 2 #755 2 # ! BD 8 8 1 5# 5 3 # 2 1 B

  ! 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

isso nunca ocorre.

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

)

Portanto segue que o m.d.c. propriamente dito, a saber 6, e dessa forma:

!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

& )

pode ser escrito na forma

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

6.7 Congru encias


Notac a o n ao e parte da estrutura l ogica b asica da matem atica: poder amos representar a o por #, e o signicado dos resultados o conjunto dos n umeros reais por , ou a adic matem aticos seria o mesmo. Mas uma boa notac a o pode ser maravilhosamente sugestiva, levando a avanc os conceituais reais. Um desses passos importantes foi tomado quando Gauss notou que usamos a frase d a o mesmo resto que quando dividido por muito frequentemente, e que essa relac a o se comporta um tanto semelhantemente a ` igualdade. Ele introduziu uma notac a o para isso, chamada de congru encia.

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

Figura 6.5: Carl Friedrich Gauss (1777-1855).

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

% E % & % ) s ao divis veis por , e portanto tamb em o s ao % e

6.31 Qual e o maior inteiro

para o qual

1 7  D7 1





?

6.32 Quais das seguintes regras s ao verdadeiras? (a)




3  C (b) 3  CC 3 (c)   3 C (d) 


E   E   E      E 

 

6.33 Como voc e deniria

3  C

3 F   CGF   EGF  ; 3 C   E .  3%F  CGF   E F  ;  3  C   E  .




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

6.8 Numeros estranhos


O que e Quinta-Feira+Sexta-Feira? Se voc e n ao entende a pergunta, pergunte a uma crianc a. Ele/ela lhe dir a que e Terc a-Feira. (Pode haver alguma discuss ao se a semana comec a com Segunda-Feira ou Domingo; mas mesmo se acharmos que ela comec a com Domingo, ainda assim podemos dizer que o Domingo e o dia 0.) Agora n ao dever amos ter diculdade de adivinhar que Quarta-Feira 9 Terc a-Feira = S abado, Quinta-Feira =Terc a-Feira, Segunda-Feira % S abado=Terc a-Feira etc. Dessa maneira podemos fazer operac o es aritm eticas com os dias da semana: introduzimos um novo sistema num erico. Nesse sistema, existem apenas 7 n umeros, que chamamos Dom, Seg, Ter, Qua, Qui, Sex, Sab, e podemos realizar adic a o, subtrac a o e multiplicac a o tal qual com n umeros (poder amos cham a-los Soneca, Dunga, Feliz, Atchim, Zangado, Mestre e Dengoso; o que e importante e como as operac o es aritm eticas funcionam). N ao apenas podemos denir essas operac o es; elas funcionam exatamente como as operac o es com inteiros. Addic a o e multiplicac a o s ao comutativas: Ter e associativas:

&

Sex

Sex

&

Ter #

Ter 9 Sex

Sex 9 Ter # Seg 9 Qua 9 Sex #

Seg &

Qua

&

Sex

Seg

&

Qua & Seg &

Sex #

Seg 9 Qua 9 Sex

e elas s ao distributivas:

Seg &

Qua 9 Sex

Seg 9 Sex & Qua 9 Sex )


Seg

Subtrac a o e o inverso de adic a o:

Qua % Qua

)
Dom #

Domingo funciona como 0: Qua

&

Dom

Qua #

Qua 9 Dom

e Segunda-Feira funciona como 1: Qua 9 Seg

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

muitas linguagens, os nomes de alguns dias s ao derivados de n umeros. de modulus em latim.

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

"

!#

&

&

o que implica que

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.

O resto de %'!! 6 1A 2 m odulo 234527 e 117264, portanto obtemos que

&

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.3) se desej assemos manter os

6 #8 6

6#35 %

1 #75 8 6

6 . O Algoritmo Euclideano

1 #&!

!#

e seguindo a vers ao estendida obtemos

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

(Aqui obtemos !2 8 6 o resultado e o mesmo.)

)  ou como o resto de % 2 % 1 , ou como o resto de 8$89 1 6

!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

& 24! & BD



1 1 2

1 2

(6.4)

Podemos reescrev e-las como congru encias:

& 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

e isso resulta que

% 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


6.41 Resolva as equac o es de congru encias:


 

4H7  B

1 1
102




7

6.9 Teoria dos numeros e combinat oria


Muitas das ferramentas combinat orias que introduzimos anteriormente s ao muito u teis em teoria dos n umeros tamb em. Induc a o e usada em todos os lugares. Mostramos alguns argumentos elegantes baseados no Princ pio da Casa-de-Pombos e na Inclusa oExclus ao. umeros naturais: # # # . Mostre que podemos escolher um S ao dados ) n subconjunto (n ao-vazio) desses n umeros cuja soma divis vel por ) . poss (E vel que esse subconjunto contenha todos os ) n umeros.) Soluc a umeros: o. Considere os seguintes ) n

)))

6& 6& &


. . .

6 ) & & & ) ) )0&


Se existe um n umero entre esses ) n umeros que e divis vel por ) , ent ao encontramos o que desejamos. Se n ao existe nenhum, ent ao vamos dividir todos os n umeros # # # por ) com resto. Guarde esses restos. Quais s ao os n umeros que estamos obtendo? Poderiam ser !# 1 # # ou ) % ! . Mas temos um total de ) n umeros! Portanto pelo Princ pio da Casa-de-Pombos, existir ao dois n umeros entre # # # que d a o ) o mesmo resto quando os dividimos por . Digamos, esses dois n u meros s a o e % . Ent e ao sua diferenc a divis vel por ) . Mas

)))

)))

"

% & & ) ) )D& ) 01 7 7 4 1

)))

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



n umeros divis veis por 2

103

(a cada dois n umeros consecutivos, um deles e par),

! 1

! 1   5



n umeros divis veis por 3, n umeros divis veis por 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 !

n umeros divis veis por 2 e 3,

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

n umeros divis veis por todos entre 2, 3, 5.

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

primo? 6.10 Como testar se um numero e


claro que n 123456 e um primo? E ao, pois ele e par. 1234567 e primo? Esse n ao e f acil de responder, mas se voc e for pressionado, voc e pode tentar todos os n umeros 1 #324# 8 #35 para ver se eles s ao divisores. Se voc e tiver paci encia para ir at e 127, ent ao ! 1 6 9D 6 1 ! . voc e conseguiu: ! 1 2 8 5 A 6 Que tal 1234577? Novamente voc e pode tentar encontrar um divisor tentando e n ao acha um divisor pr oprio! Mesmo assim, se 1 #324# 8 #354# . Mas dessa vez voc voc ee realmente paciente e continuar at e chegar a ` raiz quadrada de 1234577, que e is !!$!!$#&! , voc e sabe que voc e n ao vai encontrar nenhum (por que?). Que tal o n umero 1111222233334444555566667777888899967? Se esse e um primo (como o e ), ent ao temos que tentar todos os n umeros at e a sua raiz quadrada;  . Tentar mais  , sua raiz quadrada e como o n umero e maior que !  maior que ! !  n umeros e uma tarefa praticamente imposs vel mesmo para qualquer computador.

)))

) )) ) ))

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.

bits na base 2, ent ao

7

pode ser computado usando menos que

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

) )

A seguir invocamos o resultado do exerc cio 6.6: ele implica que

% ! 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:

Um inteiro positivo ) (! e um primo se e somente se ele passa no teste de Fermat % !

107

para toda base

!# 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

Exerc cios de Revis ao

todos pot encias de primos?

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 .

6.65 Prove que "

  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

e um modulus primo, ent ao

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

01 7@ 773 7&

. Prove que existem

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

You might also like