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 ...
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.