1
◦TESTE
TEORIA DE N ´ UMEROS COMPUTACIONAL
Licenciatura em Matem´ atica
17 de abril de 2012 dura¸c˜ ao 1h 45m
Responda, justificando cuidadosamente, ` as seguintes quest˜ oes:
1. (a) Sem utilizar o Mathematica, calcule os dois ´ ultimos algarismos do inteiro 3
124. (b) Sejam n ∈ N , r
1, r
2∈ N
0e a ∈ Z . Prove que se r
1≡ r
2(modφ(n)) e
m.d.c.(a, n) = 1, ent˜ ao a
r1≡ a
r2(mod n).
2. Sem utilizar as fun¸c˜ oes FactorInteger, Divisors, PrimeQ, Prime, NextPrime ou Eu- lerPhi definidas no Mathematica,
(a) verifique que o n´ umero 3010741 ´ e composto sem o fatorizar;
(b) fatorize como produto de primos o n´ umero 1452101194 utilizando o m´ etodo de fatoriza¸c˜ ao de Fermat.
3. (a) Calcule a probabilidade de que um n´ umero com 5 algarismos escolhido aleato- riamente seja
i. pseudoprimo de base 3;
ii. pseudoprimo de base 3, 5 e 7, simultaneamente;
iii. n´ umero de Carmichael;
iv. primo.
(b) Considere as quest˜ oes das al´ıneas 3(a)i a 3(a)iv para n´ umeros inteiros escolhidos aleatoriamente no intervalo [10
15, 10
15+ 9 × 10
4− 1]. Que poderia dizer em rela¸c˜ ao a cada quest˜ ao?
(c) Compare e comente os resultados obtidos nas al´ıneas anteriores.
4. Sem utilizar as fun¸c˜ oes PowerModList, Reduce, Solve ou FindInstance, resolva as congruˆ encias:
(a) x
2≡ 17 (mod 272);
(b) 8x
5+ x
2− 9 ≡ 0 (mod 600).
COTAC ¸ ˜ AO:
1− a)2 b)2
2− a)2 b)3
3− a)3 b)2 c)1
4− a)2 b)3
a) Para conhecer os dois últimos algarismos de um número n basta calcular n mod100. Como mdc(3,100)=1, pelo teorema de Euler 3fH100Lª1(mod 100). Dado que 100=102=2252, então f(100)=f(2252)=f(22MfI52M=2
×(5×4)=40 e, consequentemente, 340ª1(mod 100).
Assim, dado que 124=40×3 + 4, 3124ªI340M334 ªH1L334ª81(mod 100). Logo os dois últimos algarismos de 3124 são 8 e 1.
b) Como mdc(a,n)=1 , então pelo teorema de Euler afHnLª1(mod n). Como r1ªr2(mod f(n)), então f(n) | r1-r2, ou seja, r1=r2+k f(n) para algum keZ.
Assim, ar1ªar2+kfHnLª ar2(afHnLMkª ar2(1Lkªar2(mod n).
Exercício 2
a) Pelo Teorema de Wilson, se n é primo, então (n-1)!ª-1(mod n). Como
In[92]:= Mod@Factorial@3 010 741−1D, 3 010 741D
Out[92]= 0
ou seja, (3010741-1)! mod 3010741= 0∫3010740, então 3010741 não é primo.
(Alternativa: pelo Pequeno Teorema de Fermat, se n é primo, então a nªa(mod n) para qualquer inteiro a.
Escolhendo a=2 (por exemplo) verifica-se que
In[93]:= PowerMod@2, 3 010 741, 3 010 741D
Out[93]= 1 120 119
ou seja, 2 3 010 741ª1 120 119T2 (mod 3010741), pelo que 3010741 não é primo.)
b) Como 1452101194 é par e 1452101194 mod 4=2, então 1452101194 não pode ser escrito como a diferença de dois quadrados. Assim, é necessário primeiro efetuar divisões sucessivas por 2 até obter um número ímpar e de seguida aplicar o método de Fermat. A função factFermat que utilizei analisa se o número n é par ou ímpar e efetua a fatorização do maior fator ímpar de n pelo método de fatorização de Fermat.
factFermat@n_D:=ModuleB 8a, b2, n1, m=nê2, r=0<, While@ MatchQ@m, _Integer D, r++ ; m=mê2 D; n1=2 m;
a=CeilingB n1F; b2=a ^ 2−n1; i=1;
WhileB!MatchQB b2 , _IntegerF, i++; a++; b2=a ^ 2−n1F;
PrintBn, "=2 ^", r, " x ", a+ b2 , " x ", a− b2 , ", nº de iterações=", iFF factFermat@1 452 101 194D
1 452 101 194=2 ^1 x 72 323 x 10 039, nº de iterações=14 236
Este resultado significa que 1452101194=2 x 72323 x 10039 e que esta fatorização foi obtida ao fim de 14236 iterações. Não há no entanto a garantia de que 72323 ou 10039 sejam fatores primos, pelo que se deve estudar a decomposição destes números.
factFermat@72 323D
72 323=2 ^0 x 2333 x 31, nº de iterações=914 factFermat@2333D
2333=2 ^0 x 2333 x 1, nº de iterações=1119
factFermat@31D
31=2 ^0 x 31 x 1, nº de iterações=11
factFermat@10 039D
10 039=2 ^0 x 10 039 x 1, nº de iterações=4920
Conclui-se então que 1452101194=2 x 2333 x 31 x 10039 e que 2, 2333, 31 e 10039 são primos. Está então obtida a fatorização em primos de 1452101194.
Exercício 3
a) i) Um número n é um número pseudoprimo de base a se não é primo e verifica an-1ª1(mod n).
testePseudBasea@n_, a_D:=PowerMod@a, n−1, nD1 && !PrimeQ@nD
Os números inteiros com 5 algarismos são os números inteiros pertencentes ao intervalo [104, 105-1E. Length@Select@Range@10 ^ 4, 10 ^ 5−1D, testePseudBasea@, 3D&DD
55
Existem 55 pseudoprimos de base 3 no intervalo [104, 105-1E. Logo a probabilidade de selecionar aletoriamente um pseudoprimo de base 3 no intervalo [10^4,10^5-1] é
N@ 55ê H10 ^ 5−10 ^ 4LD 0.000611111
ii)
Length@Select@Range@10 ^ 4, 10 ^ 5−1D,
testePseudBasea@, 3D&& testePseudBasea@, 5D&& testePseudBasea@, 7D&DD 4
Existem 4 pseudoprimos de base 3,5 e 7 no intervalo [104, 105-1E. Logo a probabilidade de selecionar aletoria- mente um pseudoprimo de base , 5 e 7 no intervalo [10^4,10^5-1] é
N@ 4ê H10 ^ 5−10 ^ 4LD 0.0000444444
iii) Foi provado que n é um número de Carmichael se (n-1)ª 0 (mod(n).
testeCarmichael@n_D:=Mod@n, CarmichaelLambda@nD D1 && !PrimeQ@nD Length@Select@Range@10 ^ 4, 10 ^ 5−1D, testeCarmichaelDD
9
Existem 9 pseudoprimos (números de Carmichael) no intervalo [104, 105-1E. Logo a probabilidade de sele- cionar aletoriamente umnúmero de Carmichael no intervalo [10^4,10^5-1] é
N@ 9ê H10 ^ 5−10 ^ 4LD 0.0001
iv)
PrimePi@10 ^ 5−1D−PrimePi@10 ^ 4−1D 8363
Existem 8363 primos no intervalo [104, 105-1E. Logo a probabilidade de selecionar aletoriamente um primo no intervalo [10^4,10^5-1] é
2 CorrecaoTeste1_11_12_LCC.nb
N@ 8363ê H10 ^ 5−10 ^ 4LD 0.0929222
b) Tentaremos proceder de modo análogo ao da alínea a).
Length@Select@Range@10 ^ 15, 10 ^ 15+9×10 ^ 4D, testePseudBasea@, 3D&DD 0
Não existem pseudoprimos de base 3 no intervalo [10^15,10^15+9 × 10^4]. Logo a probabilidade de selecionar aletoriamente um pseudoprimo de base 3 no intervalo[10^15,10^15+9 × 10^4] é 0.
Consequentemente, também não existem pseudoprimos de base 3,5, e 7.
Length@Select@Range@10 ^ 15, 10 ^ 15+9×10 ^ 4D, testeCarmichaelDD 0
Exstem 0 pseudoprimos (números de Carmichael) no intervalo [10^15,10^15+9 ×10^4]. Logo a probabilidade de selecionar aletoriamente um número de Carmichael no intervalo[10^15,10^15+9 ×10^4] é 0.
PrimePi@10 ^ 15−1D
PrimePi::largp : Argument 999999999999999 in PrimePi@999999999999999D is too large for this implementation.à PrimePi@999 999 999 999 999D
Desta forma não é possível calcular o valor exato do nº de primos no intervalo [10^15,10^15+9 10^4]. Dado que pHxL~log xx , então
pI1015+9 × 10^4) - p(1015) > 10^15+9×10^4
Log@10^30D −Log@10^15D10^15
e um valor aproximado da probabilidade de selecionar aletoriamente um número primo no interval- o[10^15,10^15+9 10^4] é
NB
10^15+9×10^4 Log@10^15+9×10^4D
− 10^15−1
Log@10^15−1D
10 ^ 15 +9×10 ^ 4−10 ^ 15 F 0.028115
(Alternativa: Não é possível calcular calcular PrimePi[10^15-1], mas como a amplitude do intervalo [10^15,10^15+9×10^4-1] é pequena, é possível calcular o número de primos no intervalo [10^15,10^15+9×10^4] recorrendo à função PrimeQ.
nprimos@min_, max_D:=Length@Select@Range@min, maxD, PrimeQDD
nprimos@10 ^ 15, 10 ^ 15+9∗10 ^ 4−1D 2513
NB 2513
10 ^ 15 +9×10 ^ 4−10 ^ 15F 0.0279222
O valor da probabilidade de selecionar aletoriamente um número primo no intervalo[10^15,10^15+9 10^4] é de 0.0279222.)
Exercício 4
a)
FactorInteger@272D 882, 4<,817, 1<<
a) x2ª17 (mod 272) ó x2ª17Imod 24M
x2ª17Hmod 17L ó x2ª1Imod 24M x2ª0Hmod 17L x2ª0Hmod 17L ó xª0 (mod 17) porque 17 é primo.
Como x2ª1(mod 23M tem quatro soluções incongruentes módulo 23, então x2ª1 (mod 24) tem 4 soluções incongruentes módulo 24. Uma solução é, obviamente, a=1, pelo que as restantes soluções módulo 16 são -1, 1+
23 e -1+23, ou seja, 1, 7, 9 e 15 são as soluções incongruentes módulo 24. Assim x2 ≡1Imod 24M
x≡0Hmod 17L
x≡1, 7, 9, 15Imod 24M x≡0Hmod 17L .
Aplicando Teorema Chinês dos Restos:
ChineseRemainder@81, 0<,816, 17<D 17
ChineseRemainder@87, 0<,816, 17<D 119
ChineseRemainder@89, 0<,816, 17<D 153
ChineseRemainder@815, 0<,816, 17<D 255
Finalmente conclui-se que x2ª17 (mod 272) xª17, 119, 153, 255Hmod 272L. b)
FactorInteger@600D 882, 3<,83, 1<,85, 2<<
b) 600=23 × 3 × 52, pelo que 8 x5+x2-9ª0 (mod 600) ó
8 x5+x2-9ª0Imod 23M 8 x5+x2-9ª0Hmod 3L 8 x5+x2-9ª0Imod 52M
ó
x2-1ª0Imod 23M 2 x5+x2ª0Hmod 3L
8 x5+x2-9ª0Imod 52M .
x2-1ª0Imod 23Móx2ª1Imod 23M . Uma solução de x2ª1Imod 23M é 1 logo as restantes soluções módulo 23são -1, 1+22 e -1+22, ou seja, x2ª1Imod 23Móxª1, 3, 5, 7Imod 23M.
2 x5+x2ª0Hmod 3L ó x2I2 x3+1Mª0Hmod 3L óIx2ª0Hmod 3L fi I2 x3+1Mª0Hmod 3L) ó ( xª0Hmod 3L Ó xª1Hmod 3LL.
8 x5+x2−9≡0Imod 52) ó 52 | 8 x5+x2-9ï 5 | 8 x5+x2-9 ó8 x5+x2-9ª0Hmod 5L e 8 x5+x2-9ª0Hmod 5L ó 3 x5+x2+1ª0Hmod 5L.
xª 0 (mod 5) não é solução de 3 x5+x2+1≡0Hmod 5L, pelo que, se x é uma solução módulo 5, então mdc (x,5)=1 e pelo Teoremas de Fermat x4ª1Hmod 5L. Então,
3 x5+x2+1≡0Hmod 5L 3 x+x2+1≡0Hmod 5Le esta última congruência só admite uma solução módulo 5 que é 1. Logo as soluções de 8 x5+x2-9 ª0Imod 52M , caso existam, são da forma 1+5t .
Sendo f(x)= 8 x5+x2-9, então f(1)=0, f’(x)= 40 x4+2 x e f’(1)=42. Assim, para x=1+5t,
8 x5+x2-9ª0Imod 52M ó 42 tª 0Hmod 5L ó tª 0Hmod 5L, ou seja, 8 x5+x2-9ª0Imod 52M ó xª1Imod 52M.
4 CorrecaoTeste1_11_12_LCC.nb
Então, 8 x5+x2-9ª0Hmod 600Ló
xª1, 3, 5, 7Imod 23M xª0, 1Hmod 3L
xª1Imod 52M .
Para conhecer as soluções módulo 600 devemos agora aplicar o Teorema Chinês dos Restos aos sistemas:
xª1Imod 23M xª0Hmod 3L xª1Imod 52M
,
xª1Imod 23M xª1Hmod 3L xª1Imod 52M
,
xª3Imod 23M xª0Hmod 3L xª1Imod 52M
,
xª3Imod 23M xª1Hmod 3L xª1Imod 52M
, xª5Imod 23M
xª0Hmod 3L xª1Imod 52M
,
xª5Imod 23M xª1Hmod 3L xª1Imod 52M
,
xª7Imod 23M xª0Hmod 3L xª1Imod 52M
,
xª7Imod 23M xª1Hmod 3L xª1Imod 52M
.
ChineseRemainder@81, 0, 1<,88, 3, 25<D 201
ChineseRemainder@81, 1, 1<,88, 3, 25<D 1
ChineseRemainder@83, 0, 1<,88, 3, 25<D 51
ChineseRemainder@83, 1, 1<,88, 3, 25<D 451
ChineseRemainder@85, 0, 1<,88, 3, 25<D 501
ChineseRemainder@85, 1, 1<,88, 3, 25<D 301
ChineseRemainder@87, 0, 1<,88, 3, 25<D 351
ChineseRemainder@87, 1, 1<,88, 3, 25<D 151
Finalmente conclui-se que
8 x5+x2-9ª0Hmod 600L ó xª1, 51, 151, 201, 301, 351, 451, 501 Hmod 600L.