10.01.2015 Views

Teorema Fundamental da Aritmética Todo o número inteiro n maior ...

Teorema Fundamental da Aritmética Todo o número inteiro n maior ...

Teorema Fundamental da Aritmética Todo o número inteiro n maior ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

<strong>Teorema</strong> <strong>Fun<strong>da</strong>mental</strong> <strong>da</strong> <strong>Aritmética</strong><br />

<strong>Todo</strong> o <strong>número</strong> <strong>inteiro</strong> n <strong>maior</strong> do que 1 escreve-se de forma<br />

única como produto de <strong>número</strong>s primos, a menos <strong>da</strong> ordem<br />

dos factores.<br />

<strong>Teorema</strong> de Euclides<br />

O conjunto dos <strong>número</strong>s primos é infinito.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Distribuição dos <strong>número</strong>s primos<br />

Proposição<br />

Considerando os <strong>número</strong>s primos ordenados pela ordem natural em<br />

N, tem-se que o n-ésimo primo p n satisfaz:<br />

p n ≤ 2 2n−1<br />

para todo o n ∈ N.<br />

Proposição<br />

<strong>Teorema</strong> dos Números Primos<br />

Proposição<br />

π(x) ≥ log 2 (log 2 (x)) + 1<br />

π(x) ∼<br />

x<br />

ln x .<br />

Seja k ∈ N. Existem k <strong>inteiro</strong>s consecutivos que não são primos.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Distribuição dos <strong>número</strong>s primos<br />

<strong>Teorema</strong> de Chebyshev<br />

Existem constantes c 1 e c 2 tais que<br />

c 1<br />

para n suficientemente grande.<br />

n<br />

ln n < π(xn) < c x<br />

2<br />

ln x<br />

Postulado de Bertrand<br />

Para todo o <strong>inteiro</strong> positivo m existe um primo entre m e 2m.<br />

Mais, tem-se que<br />

m<br />

π(2m) − π(m) ><br />

3ln(2m)<br />

<strong>Teorema</strong> - Dirichlet,1837<br />

Se a e b são primos entre si, então existe uma infini<strong>da</strong>de de primos<br />

<strong>da</strong> forma ak + b.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Distribuição dos <strong>número</strong>s primos<br />

Lema<br />

Se 2 m + 1 é primo, então m = 2 n para algum <strong>inteiro</strong> n ≥ 0.<br />

Definição<br />

Os <strong>número</strong>s do tipo F n = 2 2n + 1 designam-se <strong>número</strong>s de Fermat.<br />

Os <strong>número</strong>s de Fermat que são primos designam-se primos de<br />

Fermat.<br />

Lema<br />

Números de Fermat distintos são primos entre si.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Distribuição dos <strong>número</strong>s primos<br />

<strong>Teorema</strong><br />

Se m > 1 e a m − 1 é primo, então a = 2 e m é primo.<br />

Definição<br />

Os <strong>número</strong>s do tipo M p = 2 p − 1, onde p é primo, designam-se<br />

<strong>número</strong>s de Mersenne.<br />

Os <strong>número</strong>s de Mersenne que são primos designam-se primos de<br />

Mersenne.<br />

Lema<br />

Números de Mersenne distintos são primos entre si.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Dois métodos deterministas para verificar se um <strong>número</strong> é<br />

primo:<br />

usar um algoritmo de factorização, por exemplo por<br />

ensaios de divisões sucessivas, para encontrar um factor;<br />

com base no <strong>Teorema</strong> de Wilson, testar se<br />

(n − 1)! ≡ −1 (modn).


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de pseudoprimali<strong>da</strong>de simples<br />

Um <strong>número</strong> n é primo se:<br />

1 para qualquer a tal que m.d.c.(a, n) = 1, n passa o teste de<br />

pseudoprimali<strong>da</strong>de de base a, isto é, se<br />

a n−1 ≡ 1 (mod n);<br />

2 n não é pseudoprimo.<br />

Algoritmo - Teste pseudoprimali<strong>da</strong>de simples<br />

Entra<strong>da</strong>: n<br />

1 Dado um <strong>número</strong> n efectuar o teste de pseudoprimali<strong>da</strong>de de<br />

base 2.<br />

2 Se n não passa o teste, então n é composto;<br />

3 senão n é primo.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de pseudoprimali<strong>da</strong>de forte<br />

Proposição<br />

Se p é um primo, então x 2<br />

soluções: 1 e -1.<br />

≡ 1 (mod p) tem exactamente duas<br />

Se a congruência tem mais do que duas soluções, então n não é<br />

primo.<br />

Se n é um <strong>inteiro</strong> ímpar, então n − 1 = 2 r s para r ≥ 1 e s ímpar.<br />

Considere-se a sucessão de potências:<br />

a s , a 2s , a 4s , . . . , a n−1<br />

2 , a n−1 .<br />

Caso n seja primo esta sequência calcula<strong>da</strong> módulo n é de um dos<br />

seguintes tipos:<br />

1, 1, 1, . . . , 1 ou ∗, . . . , ∗, −1, 1, . . . , 1.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de pseudoprimali<strong>da</strong>de forte<br />

Definição<br />

Seja n um <strong>inteiro</strong> e r e s tais que n − 1 = 2 r s. Então n passa o teste<br />

de pseudoprimali<strong>da</strong>de forte de base a se<br />

a s ≡ 1 (mod n), ou<br />

a s2i ≡ −1 (mod n) para algum i tal que 0 ≤ i < r.<br />

Um tal <strong>número</strong> n se for composto é dito um pseudoprimo forte de<br />

base a.<br />

Proposição<br />

Se n é um pseudoprimo de base 2, então 2 n − 1 é um pseudoprimo<br />

forte de base 2.<br />

Corolário<br />

Existe uma infini<strong>da</strong>de de pseudoprimos fortes de base 2.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de pseudoprimali<strong>da</strong>de forte<br />

Algoritmo - Teste de pseudoprimali<strong>da</strong>des forte (Miller, Rabin)<br />

Entra<strong>da</strong>: n.<br />

1 Dividir n − 1 sucessivamente por 2 e determinar r e s ímpar tais<br />

que n − 1 = 2 r s.<br />

2 Escolher a tal que 1 < a < n.<br />

3 i = 0 e x ≡ a s (mod n).<br />

4 Se (i = 0 ∧ x = 1) ∨ x = −1 então n passa o teste.<br />

5 Se i > 0 ∧ x = 1 então n é composto.<br />

6 Caso contrário, então<br />

i ← i + 1;<br />

se i < r, então x ← x 2 mod n, voltar a 4.<br />

7 n é composto.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de Euler<br />

Definição<br />

Seja m > 0 um <strong>inteiro</strong> ímpar. Suponhamos que m = p 1 · · · p k um<br />

produto de <strong>número</strong>s primos não necessariamente distintos. Então o<br />

símbolo de Jacobi de a módulo m é<br />

( a<br />

) ( ) ( )<br />

a a<br />

= · · ·<br />

m p 1 p k<br />

} {{ }<br />

símbolos de Legendre<br />

<strong>Teorema</strong><br />

Se m, n > 0 são <strong>inteiro</strong>s ímpares tais que m.d.c.(m, n) = 1. Então,<br />

(<br />

1 −1<br />

)<br />

m = 1 se e só se m ≡ 1 (mod 4),<br />

)<br />

2 = 1 se e só se m ≡ 1, 7 (mod 8),<br />

( 2<br />

m<br />

3<br />

( m<br />

n<br />

) ( n<br />

m<br />

)<br />

= (−1)<br />

n−1<br />

2<br />

m−1<br />

2 .


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de Euler<br />

<strong>Teorema</strong> ( Teste de pseudoprimali<strong>da</strong>de de Euler ou de<br />

Solovay-Straussen)<br />

Sejam k, n > 1 e b 1 , . . . , b k <strong>inteiro</strong>s positivos menores do que n<br />

escolhidos ao acaso e tais que m.d.c.(b i , n) = 1 para qualquer<br />

índice i. Se para qualquer índice i for váli<strong>da</strong> a relação<br />

b n−1<br />

2<br />

i<br />

≡<br />

(<br />

bi<br />

n<br />

)<br />

(mod n)<br />

a probabili<strong>da</strong>de de n ser composto é menor do que 1 2 k .<br />

Definição<br />

Um <strong>número</strong> composto que passe o teste descrito no enunciado<br />

acima, para um <strong>inteiro</strong> positivo b menor do que n e tal que<br />

m.d.c.(b, n) = 1, diz-se um pseudoprimo de Euler de base b.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Certificado de Lucas-Lehmer<br />

<strong>Teorema</strong> ( Lucas-1876, Lehmer-1927)<br />

Seja n um <strong>inteiro</strong> e suponhamos que existe a tal que<br />

a n−1 ≡ 1 (mod n),<br />

a n−1<br />

q<br />

≢ 1 (mod n) para todo o factor primo q de n − 1.<br />

Então n é primo.<br />

<strong>Teorema</strong><br />

Seja n um <strong>inteiro</strong> tal que n − 1 = q e 1<br />

1 · · · qe k<br />

k<br />

a factorização em primos<br />

de n − 1. Suponhamos que, para i = 1, . . . , k, existe a i tal que<br />

a n−1<br />

i<br />

≡ 1 (mod n),<br />

n−1<br />

q<br />

a i<br />

i<br />

≢ 1 (mod n).<br />

Então n é primo.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Certificado de Lucas-Lehmer<br />

<strong>Teorema</strong> (Pocklington-Lehmer)<br />

Seja n um <strong>inteiro</strong> tal que n − 1 = FR em que F é um factor de n − 1<br />

cujos factores primos são conhecidos e R é tal que m.d.c.(F , R) = 1.<br />

Suponhamos que existe a tal que<br />

a n−1 ≡ 1 (mod n),<br />

m.d.c.(a n−1<br />

q<br />

− 1, n) = 1 para todos os primos q que dividem F .<br />

Assim, F | p − 1 para qualquer factor primo p de n e se F > R, então<br />

n é primo.<br />

<strong>Teorema</strong> (Proth)<br />

Seja n = k2 m + 1 onde k é ímpar tal que k < 2 m . Se existe um <strong>inteiro</strong><br />

a tal que<br />

a n−1<br />

2 ≡ −1 (mod n)<br />

então n é primo.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de Lucas<br />

Definição<br />

Sejam a e b dois <strong>inteiro</strong>s tais que D = a 2 − 4b ≠ 0 e considere-se a<br />

equação x 2 − ax + b = 0. Sejam α e β as raízes <strong>da</strong> equação. Assim,<br />

definem-se as sequências<br />

U k (a, b) =<br />

V k (a, b) =<br />

αk −β k<br />

α−β<br />

α k + β k<br />

que se designam sequências de Lucas associa<strong>da</strong>s ao par (a, b).<br />

Em alternativa, tem-se que:<br />

U 0 (a, b) = 0, U 1 (a, b) = 1, U k (a, b) = aU k−1 − bU k−2 para k ≥ 2<br />

V 0 (a, b) = 2, V 1 (a, b) = a, V k (a, b) = aV k−1 − bV k−2 para k ≥ 2


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de Lucas<br />

<strong>Teorema</strong> de Lucas<br />

Sejam a e b dois ( ) <strong>inteiro</strong>s tais que D = a 2 − 4b ≠ 0. Se p é um primo<br />

ímpar, p ∤ b e = −1, então p | U p+1 (a, b).<br />

D<br />

p<br />

Corolário (Teste de Lucas)<br />

Nas condições do <strong>Teorema</strong> de Lucas se n é um <strong>inteiro</strong> ímpar,<br />

n ∤ U n+1 , então n é composto.<br />

Definição<br />

Sejam a e b dois <strong>inteiro</strong>s. Um <strong>inteiro</strong> ímpar composto n(<br />

diz-se ) um<br />

pseudoprimo de Lucas relativamente a a e b se p ∤ b, = −1 e<br />

p | U p+1 (a, b).<br />

D<br />

p


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de Lucas<br />

1 ◦ método<br />

Escolher D igual ao primeiro elemento de sequência<br />

5, -7, 9, -11, 13, . . .<br />

tal que ( )<br />

D<br />

n = −1. Fazer a = 1 e b =<br />

a 2 −D<br />

4<br />

.<br />

2 ◦ método<br />

Escolher D igual ao primeiro elemento de sequência<br />

5, 9, 13, 17, 21,. . .<br />

tal que ( D<br />

n<br />

)<br />

= −1. Escolher para a o menor <strong>inteiro</strong> ímpar <strong>maior</strong> do<br />

que √ n e b = a2 −D<br />

4<br />

.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de Lucas-Lehmer para primos de Mersenne<br />

<strong>Teorema</strong> de Lucas-Lehmer para primos de Mersenne<br />

Considere-se a sequência de Lucas (V k (2, −2)) k≥0 . Seja n um<br />

<strong>número</strong> primo. Então o <strong>número</strong> de Mersenne M n = 2 n − 1 é primo se<br />

e só se M n | V Mn+1 .<br />

2<br />

L 0 = 4,<br />

L k+1 = L 2 k<br />

− 2 para k ≥ 0.<br />

<strong>Teorema</strong> de Lucas-Lehmer para primos de Mersenne<br />

Considere-se a sequência de Lucas-Lehmer (L k ) k≥0 . Seja n um<br />

<strong>número</strong> primo. Então o <strong>número</strong> de Mersenne M n = 2 n − 1 é primo se<br />

e só se M n | L n−2 .


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Testes de Primali<strong>da</strong>de<br />

Teste de Lucas-Lehmer para primos de Mersenne<br />

Algoritmo Lucas-Lehmer para primos de Mersenne<br />

Entra<strong>da</strong>: p um <strong>número</strong> primo.<br />

1 L ← 4;<br />

2 Para i = 1 até p − 2<br />

L ← (L 2 − 2)mod(2 p − 1);<br />

3 Se L = 0, então 2 p − 1 é primo,<br />

senão 2 p − 1 é composto.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Já estu<strong>da</strong>mos alguns métodos básicos.<br />

Algoritmo de construção do crivo<br />

Entra<strong>da</strong>: n > 2.<br />

1 P = (p i ) i = (2, 3, 4, 5, 6, 7, . . . , n), i = 1.<br />

2 Se p i > √ n, então terminar.<br />

3 P ← sequência que resulta de P por se retirar os elementos <strong>da</strong><br />

forma kp i para 2 ≤ K ≤ n p i<br />

.<br />

4 i ← i + 1, voltar a 2..<br />

Saí<strong>da</strong>: lista ordena<strong>da</strong> P dos <strong>número</strong>s primos menores ou iguais a n


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização por ensaios de divisão sucessivos<br />

Algoritmo de factorização por ensaios de divisão sucessivos<br />

Entra<strong>da</strong>: n > 2 e P = (p i ) i uma lista de primos.<br />

1 f = (), e = 0, i = 1, d = p 1 .<br />

2 Se d > √ n, então f ← f · ({n, 1}) e terminar.<br />

3 Se d|n, então<br />

e ← e + 1, n ← quociente <strong>da</strong> divisão de n por d, voltar a 3..<br />

4 Se e ≠ 0, então f ← f · ({d, e}).<br />

5 Se n = 1, então terminar.<br />

6 i ← i + 1.<br />

7 Se i < |P|, então d ← p i , e = 0, voltar a 2..<br />

8 Terminar com mensagem de que f pode não ser a lista<br />

completa.<br />

Saí<strong>da</strong>: f lista ordena<strong>da</strong> dos menores divisores primos e respectivos<br />

expoentes que ocorrem na factorização de n.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização de Fermat<br />

O método de factorização de Fermat baseia-se na representação de<br />

um <strong>número</strong> ímpar composto como sendo a diferença de dois quadrados.<br />

( ) ( )<br />

p + q p − q<br />

n = p · q ⇔ n =<br />

2 − 2 ⇔ n = a 2 − b 2<br />

}<br />

2<br />

{{ }<br />

a<br />

}<br />

2<br />

{{ }<br />

b<br />

Como p e q são ímpares então p+q<br />

2 , p−q<br />

2<br />

∈ Z.<br />

Notar que conhecer p e q é equivalente a conhecer a e b.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização de Fermat<br />

Para a partir de um <strong>inteiro</strong> ímpar n determinar os valores de a e b<br />

nas condições acima deve proceder-se <strong>da</strong> seguinte forma:<br />

1 Escolher para valor inicial de a o menor <strong>inteiro</strong> tal que<br />

a 2 − n ≥ 0.<br />

2 Incrementar sucessivamente o valor de a até que a 2 − n 2 seja<br />

um quadrado perfeito.<br />

a + b é o menor factor de n <strong>maior</strong> ou igual a √ n.<br />

a − b é o <strong>maior</strong> factor de n menor ou igual a √ n.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização de Fermat<br />

Algoritmo de factorização de Fermat<br />

Entra<strong>da</strong>: n > 2 e max.<br />

1 r ← 0.<br />

2 Enquanto n mod 2 = 0 fazer<br />

n ← n 2 , r ← r + 1.<br />

3 i ← 1, a ← √ n, b2 ← a 2 − n.<br />

4 Enquanto √ b2 ∉ N 0 e i ≤ max, fazer<br />

a ← a + 1, b2 ← a 2 − n, i ← i + 1.<br />

5 p ← a + √ b2, q ← a − √ b2.<br />

Saí<strong>da</strong>: 2 r , p e q.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização p − 1 de Pollard<br />

Se n é composto então existe um primo p que divide n. Pelo <strong>Teorema</strong><br />

de Fermat sabe-se que<br />

a p−1 ≡ 1 (mod p) se m.d.c.(a, p) = 1.<br />

Se p − 1 | m, então a m ≡ 1 (mod p) e p | a m − 1. Como p | n, então<br />

p | m.d.c.(a m − 1, n).<br />

Sugestão: Calcular l = m.d.c.(a m − 1, n) = m.d.c.(a m − 1modn, n) e<br />

caso l ≠ n e l ≠ 1, então l é um factor não trivial de n não necessariamente<br />

primo.<br />

A dificul<strong>da</strong>de na aplicação deste método de factorização reside na<br />

escolha de m sem conhecer p.<br />

Duas escolhas naturais: fixar k não muito grande e<br />

m = k!,<br />

m = m.m.c.(2, 3, . . . , k).<br />

O valor de k deve ir sendo incrementado até obter um factor ou até<br />

um limite pré-fixado.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização p − 1 de Pollard<br />

Algoritmo p − 1 de Pollard<br />

Entra<strong>da</strong>: n > 2, a, B , b<br />

1 m = 1,Q = 1, i ← 1.<br />

2 Enquanto m ≤ b fazer<br />

a ← a i mod n, Q ← Q(a − 1) mod n, i ← i + 1, m ← m + 1.<br />

3 d ← m.d.c.(Q, n).<br />

4 Se d ≠ 1 e d ≠ n, então d é um factor de n.<br />

5 Se d = n, então informar sobre i.<br />

6 Se d = 1 e i < B, então m = 1, Q = 1 e voltar a 2..<br />

7 Senão terminar sem sucesso.<br />

Saí<strong>da</strong>: um factor não trivial d ou uma mensagem.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização ρ de Pollard<br />

Seja f uma função polinomial de coeficientes <strong>inteiro</strong>s.<br />

A partir <strong>da</strong> escolha de um valor inicial x 0 define-se a sequência<br />

x k+1 = f (x k ) mod n<br />

Para p ≤ √ n um primo divisor de n constrói-se a sequência<br />

z k = x k mod p<br />

e os valores <strong>da</strong> sucessão (z k ) repetem-se mais cedo do que os <strong>da</strong><br />

sucessão (x k ).<br />

Caso z i = z j com j > i, então x i ≡ x j (modp), ou seja, p | x i − x j .<br />

Logo p | m.d.c.(x i − x j , n).<br />

Sugestão: m.d.c.(x i − x j , n) é um factor de n.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização ρ de Pollard<br />

Definição<br />

Seja x 0 , x 1 , . . . , x i , . . . uma sequência <strong>da</strong><strong>da</strong> por<br />

x k+1 = f (x k ) mod n<br />

para alguma função polinomial de coeficientes <strong>inteiro</strong>s f e um valor<br />

inicial x 0 . Então existem índices i e j distintos tais que x i = x j e i < j.<br />

Sejam i e j os menores índices nessas condições. Então,<br />

x 0 , x 1 , . . . , x i−1 é o pré-período;<br />

x i , x i+1 , . . . , x j−1 é a parte periódica;<br />

T = j − i é o período;<br />

(x k ) é uma sucessão eventualmente periódica.


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização ρ de Pollard<br />

Algoritmo de detecção de ciclos de Floyd<br />

pré-período<br />

{ }} {<br />

z 0 . . . z n0 −1<br />

parte periódica<br />

{ }} {<br />

z n0 . . . z k . . . z n0 +T −1 z n0 +T . . . z 2k . . .<br />

No intervalo [n 0 , n 0 + T − 1] existe um único <strong>inteiro</strong> múltiplo de T :<br />

k = rT → z 2k = z k<br />

ou seja,<br />

x 2k ≡ x k (modp)<br />

Objectivo: encontrar i tal que existe p primo que verifica<br />

p | m.d.c.(x i − x 2i , n).


Primali<strong>da</strong>de e Factorização<br />

Primali<strong>da</strong>de e Factorização<br />

Métodos de factorização em <strong>número</strong>s primos<br />

Método de factorização ρ de Pollard<br />

Algoritmo do método ρ de Pollard<br />

Entra<strong>da</strong>: n > 2, x 0 , f , b e B.<br />

1 i = 0, y = x = x 0 , m = 1 e Q = 1.<br />

2 Se i > B, então informar o valor de i e terminar.<br />

3 i = i + 1, x = f (x) mod n, y = f (f (y)) mod n.<br />

4 Q ← Q(y − x) mod n , m = m + 1.<br />

5 Se m < b, então voltar a 3.<br />

6 d = m.d.c.(Q, n).<br />

7 Se d = 1, então Q = 1, m = 0, voltar a 2.<br />

8 Se d = n, então informar o valor de i, que d = n e terminar.<br />

Saí<strong>da</strong>: d factor não trivial de n ou uma mensagem.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!