Académique Documents
Professionnel Documents
Culture Documents
" O problema da distinção de números primos, dos números compostos e a resolução posterior destes
últimos, nos seus factores primos, é conhecido como um dos mais importantes e úteis da/na aritmética.
Tem inspirado a sabedoria e o trabalho de anciãos e modernos geometras, a uma extensão tal que eu
seria supérfluo a discutir esse assunto extensivamente . Mais, a dignidade da ciência só por si, parece
requerer, todos e quaisquer meios, com vista, a explorar a solução de um problema tão elegante e tão
célebre."
" É irrelevante para um teoricista dos números, quem trabalha com exemplos; sendo a capacidade da
factorizar como uma das mais importantes das técnicas analíticas, porque o segredo do problema
passa pela revelação (e apenas quando) se descobrem os factores primos dos números em questão,
pela sua factorização. Eu sei que muitas pessoas - de facto a maioria das pessoas - não se apercebe
disso, porque nunca foram confrontados realisticamente com a necessidade de saber a factorização de
alguns números; mas eu asseguro-vos, que quando precisarem de tal, ficarão completamente frustados
pelo facto de o não conseguirem, porque os números serão grandes demais para serem factorizados.
Não é uma questão de desporto ou de excentricidade."
A primeira observação no que concerne ao problema de primalidade e factorização é claro : existe um algoritmo
para cada problema. Por algoritmo, entende-se um processo envolvendo uma quantidade finita de passos,
aplicáveis a qualquer número N e que nos vão indicar se N é um número primo, ou, se N é composto, e quais são
os seus factores primos. Nomeadamente, dado um número natural N, tenta-se sucessivamente cada número n =
2, 3, até N1/2 (o maior inteiro não superior a N1/2 ), para se tentar perceber se divide N. Se tal não acontecer N
é um número primo. Se, digamos, N0 dividir N, escreve-se N = N0 N1 , com N1 < N, então repete-se o mesmo
processo com N0 , e N1 . Eventualmente tal dar-nos-à a factorização completa de N em números primos.
Note-se no entanto que para N muito grande, pode ser que este algoritmo seja muito demorado, na determinação
da sua factorização ou primalidade. Este é o aspecto prático mais importante da tarefa, de achar um algoritmo
eficiente, tal que este contenha tão poucas operações quantas as possíveis, e que além disso necessite de
menos tempo e menos custo, ao ser realizado.
São apresentados alguns algoritmos: O Crivo de Erastotenes , dois algoritmos de Lucas, um algoritmo de
três matemáticos, Brillhart, Lehmer & Selfridge; algoritmo de Pepin para determinar a primalidade dos números
de Fermat (Fn), um algoritmo para determinar a primalidade dos números de Mersenne (Mn).
www.educ.fc.ul.pt/…/Algoritmos.htm 1/4
19-11-2010 Algoritmos
O crivo de Erastotenes
Como já foi analisado anteriormente , é possível saber-se se N é um número primo utilizando divisões triviais para
cada número n tal que n2 seja menor ou igual a N. Tendo em conta que a multiplicação é uma operação mais
fácil de realizar do que a divisão, Erastotenes (no século III a.C.) teve a brilhante ideia de organizar estas
maravilhosas computações, na forma de um bem conhecido crivo. Tal crivo, serve para determinar todos os
números primos, assim como as factorizações dos números compostos, até um dado número N. Vamos ilustrar
para N= 101.
[Próximo algoritmo]
[Voltar ao topo]
Algoritmos de Lucas
Este algoritmos são baseados no Pequeno Teorema de Fermat (para distinguir do denominado Grande
Teorema de Fermat).Que diz que: Seja n um número primo então para qualquer número inteiro a, tem-se
que : a p a (mód. p)
Defeitos do algoritmo: pode parecer perfeito, mas requer N-2 sucessivas multiplicações por a, e a busca dos
resíduos do módulo N : Demasiadas operações.
www.educ.fc.ul.pt/…/Algoritmos.htm 2/4
19-11-2010 Algoritmos
1. aN-1 1 (mód. N).
2. am 1 (mód. N) para cada m<N, tal que m seja divisor de N-1.
Defeitos apresentados por este algoritmo: requer o conhecimento prévio de todos os factores de N-1, embora
seja fácil de aplicar quando N é da forma N= 2n + 1 ou quando N=3.2n + 1.
[Voltar ao topo]
Seja N>1. Assuma-se que para cada factor primo q de N-1 existe um inteiro a = a(q)>1 tal que:
Defeitos do algoritmo: mais uma vez, é necessário conhecer os factores primos de N-1, mas poucas
congruências têm de satisfeitas.
[Voltar ao topo]
Como os números de Fermat (Fn = 22^n +1) crescem muito rapidamente em função de n, torna-se muito
laborioso testar a sua primalidade. No entanto Pepin obteve em 1877 um algoritmo para testa a primalidade de
números de Fermat.
Algoritmo de Pepin:
Seja Fn = 22^n +1, com n³2, e k³2. Então as seguintes condições são equivalentes:
www.educ.fc.ul.pt/…/Algoritmos.htm 3/4
19-11-2010 Algoritmos
2. k (Fn -1)/2 -1 (mód. Fn ).
Este algoritmo é praticamente uma aplicação da fórmula de Euler para os factores de Fn(Euler demonstrou que
todos os factores de Fn , com n³2, são da forma k x 2n+2+1 e através do qual descobriu que 641 divide F5 : F5 =
641 x 6 700 417) . No entanto se Fn é composto este não nos indica qualquer factor deste.
[Voltar ao topo]
Algoritmo:
Mn =2n + 1 é um número primo se e só se Mn divide Sn-2, com (Sk)k1, uma sucessão definida recursivamente por
:
S0= 4, Sk+1=Sk2 -2.
[Algoritmo anterior]
[Voltar ao topo]
www.educ.fc.ul.pt/…/Algoritmos.htm 4/4