PRIMALIDADE: FUNDAMENTOS, TESTES E PERSPECTIVAS
José Aluízio Ferreira Lima1
Sinval Braga de Freitas2
RESUMO
Neste trabalho procuramos mostrar a evolução histórica e a situação atual relativa a testes de primalidade, seus
fundamentos teóricos, os caminhos trilhados e perspectivas sobre o assunto.
Palavras-chave: primalidade, testes, história.
1. INTRODUÇÃO
O artigo trata sobre testes de primalidade. É uma área da matemática pura, mais especificamente
vinculado a Teoria dos Números e a teoria Analítica dos Números. Envolve também a
Matemática Computacional. Na realidade é um assunto transversal que faz um corte nos três
campos do conhecimento matemático. Mais especificamente o artigo tem em vista mostrar a
situação atual relativa a testes de primalidade, seus fundamentos teóricos, os caminhos trilhados e
perspectivas sobre o assunto. O desenho do artigo é assim caracterizado: focaliza os estudos
sobre testes da primalidade, fundamentos teóricos e algoritmos; busca levantar o “estado da arte”
sobre o assunto; visa mostrar caminhos e perspectivas para estudo sobre testes de primalidade; e
aborda a idéia de que estamos vivendo um grande momento da matemática em relação à Teoria
dos Números Primos e que em função das demandas atuais novos testes de primalidade surgirão.
O que justifica este artigo são sua oportunidade e relevância: a) os sistemas de criptografia atuais
demandam a utilização de grandes números primos e o levantamento sobre a situação atual sobre
testes de primalidade, seus fundamentos teóricos e perspectivas de desenvolvimento podem ser
apropriados; b) é relevante, pois o surgimento da necessidade de confirmação da primalidade de
um número inteiro para sua utilização nos sistemas de criptografia atuais está na pauta do dia; c)
um trabalho organizado e sistematizado sobre tentativas, resultados obtidos e perspectivas sobre
testes de primalidade pode contribuir para a própria Teoria dos Números.
A primeira parte estabelece as categorias de análise do artigo: avanço conceitual, técnico e
tecnológico. O avanço conceitual será muitas vezes chamado de salto conceitual, revolução
conceitual, grande momento dos números primos, dentre outros; fala ainda de algoritmos P e NP.
A segunda parte trata de uma breve história dos números primos, segundo as categorias
anteriormente definidas. A terceira cuida da análise dos fundamentos teóricos de alguns
importantes testes de primalidade, utilizando, principalmente, as categorias já mencionadas. É
finalizado com uma conclusão que mostra os resultados e perspectivas atuais sobre o assunto.
Ao finalizar esta introdução é preciso destacar a importância dos números primos, que vai muito
além das suas aplicações práticas em computação e criptografia, como muitos pensam hoje em
1
2
José Aluizio Ferreira Lima - Licenciando em Matemática
Orientador
dia. Não existiria a Teoria dos Números sem os primos, sem seu conceito e propriedades
decorrentes. As obras de Legendre e Gauss mostram isso.
2. CATEGORIAS DE ANÁLISE
O referencial teórico para estudo está caracterizado pelas seguintes categorias de análise: avanço
conceitual, avanço técnico e avanço tecnológico.
2.1 Avanço Conceitual
Ao realizar uma leitura atenta sobre a história matemática e da biografia de grandes matemáticos
é fácil identificar, implicitamente, o processo de criação na matemática e os caminhos seguidos
para o desenvolvimento de determinadas teorias ou ramos matemáticos. Isto é muito importante,
porque permite explicitar a realidade subjacente ao processo desenvolvimento da matemática,
com base nos procedimentos de descoberta dos fatos matemáticos, que se inicia com um
problema prático ou teórico, uma intuição e o conseqüente processo de experimentação em torno
do assunto ou problema, passando por um momento heurístico até a formalização final e a
conseqüente exploração das aplicações.
O fato histórico matemático relevante ou grandes momentos da matemática, que aparecem sob a
forma de uma descoberta importante, só ocorre depois de um período de maturação que
desemboca em uma solução mais geral e inovadora. É quando ocorre um avanço conceitual
significativo ou revolucionário.
2.2 Avanço Técnico
O avanço técnico ocorre, em matemática, quando realizado um salto conceitual significativo, um
grupo de matemáticos explora o novo caminho, descobrindo novos métodos e técnicas que
facilitam o desenvolvimento teórico e prático do assunto. Por exemplo, após os avanços
conceituais realizados por Cauchy e Riemann em relação ao Cálculo Diferencial e Integral, um
novo conjunto fundamental de teoremas, métodos e técnicas referentes ao cálculo foi
desenvolvido. Foram avanços técnicos importantes, mas não foram avanços conceituais. O
avanço técnico em matemática sempre ocorre em torno de um conceito já anteriormente
desenvolvido. É importante na matemática, mas não tem o potencial de transformação do avanço
conceitual.
2.3 Avanço Tecnológico
Para definir o conceito de avanço tecnológico em matemática é apresentado um exemplo dado
por (John J O'Connor e Edmund Robertson F, 2008), em uma tradução livre:
Um desafio. Se você acha que os conceitos matemáticos são de fácil descoberta, então lanço aqui
é um desafio para fazer você pensar. Napier e Briggs e outros introduziram no mundo os
logaritmos à quase 400 anos atrás. Estes foram utilizados por 350 anos, como a principal
ferramenta de cálculo científico, financeiro e aritmético. Uma espantosa quantidade de trabalho e
2
esforço foi evitada usando logaritmos. Como poderiam ter sido realizados os pesados e volumosos
cálculos necessários nas ciências sem a existência dos logaritmos?
Então, o mundo mudou. A calculadora de bolso apareceu. O logaritmo continua a ser uma
importante função matemática, mas a sua utilização no cálculo foi embora para sempre.
Aqui está o desafio. O que irá substituir a calculadora de bolso? Você poderá dizer que esta é uma
pergunta injusta. Entretanto deixe-me lembrá-lo de que Napier inventou os conceitos básicos de
um computador mecânico, ao mesmo tempo do que os logaritmos e as respectivas tabelas. As
idéias básicas que levarão à substituição da calculadora de bolso estão com certeza nas coisas que
nos rodeiam...
Podemos pensar em calculadoras mais rápidas, calculadoras menores, calculadoras melhores, mas
eu estou pedindo algo tão diferente da calculadora como a calculadora é em si diferente da tabela
de logaritmos. Tenho uma resposta à minha pergunta, mas ela iria estragar o meu ponto de desafio
se eu disser aqui qual ela é. Pense sobre isso pois sabemos quão difícil foi inventar a geometria não
euclidiana, os grupos, relatividade geral, teoria dos conjuntos...
Pelo exemplo acima fica evidente o conceito de avanço tecnológico. No caso temos em relação
às tabelas de logaritmo e às calculadoras de bolso, um avanço tecnológico precedido de avanços
conceituais. Isto quase sempre acontece.
3. BREVE HISTÓRIA CONCEITUAL DOS NÚMEROS PRIMOS
Uma breve resenha histórica do estudo dos números primos, começando pelos gregos até o
advento do algoritmo AKS, mostra alguns momentos com características próprias muito
específicas. Estes momentos serão chamados de “momentos significativos para os números
primos”. São períodos históricos, longos ou curtos, quando os números primos receberam
tratamento diferenciado e com especificidade própria, além de sua importante utilização na teoria
dos números. Estes momentos significativos são essencialmente marcados por avanços
conceituais e técnicos.
3.1 Período Grego
Este período vai de 300 a.C., com o desenvolvimento axiomático da geometria e da teoria dos
números (aritmética para os gregos), registrados nos Elementos de Euclides, até 194 a.C. com a
morte de Erastóstenes, criador do “primeiro teste de primalidade” (Eves, 2004).
É quando surge a idéia de número principal (primo) e secundário (composto). Para o Grego, os
primos são blocos a partir dos quais os números são construídos. Euclides define o conceito de
número primo, demonstra que o conjunto dos primos é infinito e apresenta o principio parcial da
fatoração única de um número composto; desenvolve o "algoritmo de Euclides", para determinar
o máximo divisor comum entre dois números – utilizado com a finalidade encontrar um
segmento de reta que cuja medida fosse comum a vários outros segmentos; estabelece
proposições sobre o menor múltiplo comum; define o conceito de co-primos. Estes conceitos não
são gratuitos, pois surgiram de necessidades de medidas geométricas. Erastóstenes cria o método
de peneirar a seqüência dos naturais - o Crivo de Erastóstenes - recolhendo os primos da série.
Conhecida a seqüência dos primos era possível identificar as “medidas” - números - que
3
compunham um segmento de reta, uma figura plana ou um sólido, pelo processo de divisão dos
segmentos em fatores primos. Estes resultados eram utilizados, principalmente na teoria das
proporções.
Para analisar este momento, não podemos esquecer o período que antecedeu Euclides, com Tales
de Mileto (585 a. C), como representante do início da geometria dedutiva, passando pela
aritmética e geometria Pitagóricas. Com base num conjunto de conhecimento acumulados por
seus antecessores, Euclides consolida um avanço conceitual brilhante e revolucionário com a
“publicação” de seus Elementos de Geometria, que pela primeira vez apresenta a Matemática
como um corpo de conhecimento organizado e sistematizado. Esta forma de organização
condiciona o desenvolvimento da matemática até os dias de hoje. Ele lança as bases do Método
Dedutivo de forma definitiva. Isto representa um avanço conceitual difícil de ser igualado.
É por meio dos livros VII e IX de seus Elementos que ele estabelece os fundamentos da Teoria
dos Números. Define número e pela primeira vez, de forma sistematizada, conceitua número
primo e composto. É no seu tratado que o houve um avanço conceitual significativo do conceito
de número, que passou da representação de quantidades e medidas, para um nível de abstração
mais alto, representado por unidades em forma de segmentos de reta. Não tínhamos mais uma,
duas ou três maçãs, ou 10 estádios, mas um segmento abstrato qualquer representando a unidade.
E uma quantidade de unidades representando número. É esta definição muito mais abstrata de
número que permite estabelecer novas definições, constituir e provar proposições. De qualquer
modo, número era ainda era uma medida definida por uma unidade qualquer. Porém é a primeira
definição de número que permite um desenvolvimento axiomático da teoria dos números por
meio de definições e proposições. Este conceito de número, apesar do baixo nível de abstração,
foi um avanço revolucionário para a época. A unidade não era número.
Então, é interessante verificar como Euclides procedeu, estabelecendo conceitos que irão
influenciar a Teoria dos Números por séculos. As imagens foram retiradas de (D.E.Joyce, 1997).
Este é um resumo, onde estão abordados somente os aspectos assenciais para análise. A
numeração é a adotada na obra de Euclides, Livros VII e IX.
3.1.1 Definição de Número
Definição VII-1. A unidade é aquela que em virtude do qual cada uma das coisas que existe é
chamado um.
Definição VII-2. Um número é composto por uma multiplicidade de unidades.
As definições 1 e 2 têm então a seguinte representação
u
Figura 1
4
Neste caso, se A é a unidade então o segmento BE é o número 3. O importante é que só porque
ele representa os números por segmentos não significa que eles são segmentos, e ele nunca
chama os números de segmentos.
3.1.2 Número Primo, Composto e Co-Primos
Aqui são apresentados os conceitos fundamentais que orientaram ao longo do tempo (séculos) o
desenvolvimento da Teoria dos Números.
Definição VII-11. Um número primo é aquele que é medido somente pela unidade.
Definição VII-12. Números relativamente primos são aqueles que têm somente a unidade como
medida comum.
Definição VII-13. Um número composto é aquele que é medido por algum número.
Os números primos passam a formar um conjunto muito importante na Teoria dos Números.
Grande parte desta teoria é dedicada à análise dos mesmos.
Figura 2
Afigura (4) mostra muito bem o conceito de número primo. Pois o número três só pode ser
medido pela unidade A. Qualquer outro segmento tomado em BE é parte de BE, mas não mede
BE. Ao contrário, número composto é aquele que pode ser medido por algum número diferente
da unidade. Assim na figura 5, o número dois, representado pelo segmento AB, mede o número
seis, representado pelo segmento CF. Isto ocorre também com o número três.
Figura 3
Este é um momento próprio para melhorar o entendimento sobre o significado de avanço
conceitual. Basta comparar a definição de Euclides e a definição atual utilizada em Teoria dos
Números.
Para Euclides, número é uma multiplicidade que está associada a um segmento de reta unitário e
número primo é aquele que só pode ser medido pela unidade; atualmente o conceito de número já
está abstraído de qualquer relação com uma unidade de medida, seja ela qual for. E o conceito de
numero primo esta vinculada ao conceito de divisor próprio de um número, quando define que
número primo é aquele que só é divisível por si mesmo ou por 1. Esta definição representa um
salto conceitual significativo. É também um progresso técnico importante, pois é muito mais
operacional, facilitando definir axiomas, demonstrar proposições e desenvolver algoritmos.
5
3.1.3 O Algoritmo de Euclides
Originalmente esta primeira proposição apresenta um algoritmo para determinar se dois números
distintos são relativamente primos. A demonstração apresentada por Euclides é até certo ponto
simples. Mas carece de uma interpretação adequada. É claro que quando os números não são coprimos, o resultado leva a encontrar o maior número que “mede” os dois números dados. Isto é, o
algoritmo permite encontrar o máximo divisor comum (mdc) entre dois números distintos. Se o
mdc for a unidade, os números são relativamente primos. Se for uma medida diferente da
unidade, este é o maior número (ou medida) que mede os dois números dados. A seguir a
proposição e a interpretação de sua demonstração em linguagem atual.
Proposição IX-1. Dados dois números diferentes, se o menor é continuamente subtraído do
maior e se o número que sobra nunca mede o anterior, até sobrar uma unidade, então os
números originais são primos entre si.
Demonstração. Começando com dois números, onde o menor é subtraído do
maior tantas vezes que for possível. Para facilitar, vamos designar a1 = AB e
CD = a 2 , onde, é claro, AB > CD . Então o primeiro passo é subtrair
repetidamente a 2 de a1 , até encontrar um novo número (resto) a3 ( AF ) menor
que a 2 . Algebricamente, na notação de hoje, fica assim: a1 = m1a 2 + a3 , onde m1
é o número de vezes que o a 2 foi subtraído de a1 . Este passo subtraí
repetidamente a3 de a 2 deixando um resto a 4 ( CG ): a 2 = m2 a3 + a 4 , etc. Pela
hipótese desta proposição, o algoritmo para quando a sobra é 1 (unidade no
sentido de Euclides): a n −1 = mn−1a n + 1 .
No caso AH que coincide com E dado como a unidade. Nesta prova de
Euclides a unidade (1) é o a5 . Uma vez que não existe nenhum número (onde
número é necessariamente uma multiplicidade de unidades) maior do que a
unidade que divide 1 (a unidade de Euclides), não existe nenhum número que
divide os dois números dados. Logo eles são co-primos.
Figura 4
Nesta explicação partimos do princípio de que a unidade (1) é o resultado de um processo
interativo. Este processo é uma prévia ao chamado Algoritmo de Euclides, fundamental no
Desenvolvimento da Teoria dos Números.
Proposição IX-2. Encontrar a maior medida comum entre dois números que não sejam
relativamente primos.
Aqui está o Algoritmo de Euclides em todo o seu esplendor e a demonstração é essencialmente a
mesma da proposição 1, quando o algoritmo pára em um “número” que não é a unidade. Este
número mede os “números dados”, e hoje é chamado mdc.
6
Para o que interessa a este artigo serão apresentadas mais três proposições referentes a aspectos
fundamentais para os números primos, pois mostra avanços conceituais importantes para a Teoria
dos Números: a proposição que afirma que qualquer número composto tem um fator primo, uma
versão fraca do Teorema Fundamental da Aritmética e a Infinitude da Seqüência dos Primos.
Antes de passar às explicações é importante ressaltar a última proposição – O Conjunto dos
Números Primos é Infinito – embora demonstrada pelo próprio Euclides, é o fato matemático
referente aos primos que causa o maior impacto até hoje.
Proposição IX-31. Um número composto é medido por algum número primo.
Figura 5
Esta proposição apresenta um avanço conceitual é um técnico. O conceitual mostra que os primos
estão na base de construção do conjunto Z e outros. O técnico refere-se à utilização da
demonstração por recorrência, até onde se saiba, pela primeira vez na matemática. Assim fez
Euclides:
Passo 1. Seja 27 = A (onde A representa qualquer número, no caso 27). Encontre o maior
número que mede 27. É o 9 = B.
Passo 2. Subtraia 9 de 27. 27 – 9 = 18.
Passo 3. Qual o maior número que mede 18. É o 9.
Passo 4. Subtraia 9 de 18. 18 – 9 = 9.
Passo 5. Qual é o maior número que mede 9. É o 3.
Passo 6. Subtraia 3 de 9. Então 9 - 3 = 6.
Passo 7. Qual o maior número que mede 6. É o 3.
Passo 8. Subtraia 3 de 6. 6 – 3 = 3.
Passo 9. Agora é perguntado: qual o maior número que mede 3. Não existe, pois 3 é
medido somente pela unidade, no sentido de Euclides. Logo pela definição de números primos, 3
= C é primo.
Devido a importância do tema é interessante ver com Euclides realizou a sua demonstração.
Euclides procedeu mais ou menos assim, utilizando a figura acima.
Demonstração. “Seja A um número composto. Eu digo que ele é medido por algum número
primo. Pela definição de número composto, eu sei que se A é composto, então ele é medido por
algum número B. Agora, se B é primo, a demonstração está feita. Mas, se B um número
composto, então algum número mede ele. Seja então o número C que mede ele. Então, se C mede
B e B mede A, portanto C também mede A. E, se C é primo, a proposição fica demonstrada. Mas
se ele é composto, então algum número mede C. Mas, se o processo é continuado até o fim, então
algum número primo é encontrado, o qual mede o número anterior e, portanto mede A. Se ele não
7
é encontrado, então existe uma seqüência infinita de números que mede o número A, cada qual é
menor que o outro anterior. O que é impossível dentro dos números. (É evidente que Euclides se
refere ao conjunto dos números naturais). Portanto, se algum número primo é encontrado e ele
mede o número anterior, então ele também mede A. Portanto, qualquer número composto é
medido por algum número primo.”
Esta uma das mais elegantes, simples e inovadoras demonstrações de Euclides. Ele inova de três
maneiras: a) realiza um avanço conceitual significativo quando demonstra que os números
primos estão na base da Teoria dos Números e indica o caminho para o Teorema Fundamental da
Aritmética; b) inova nas técnicas de demonstração, introduzindo a demonstração por recorrência
e c) mostra por exclusão que o processo de recorrência não poderia continuar indefinidamente,
pois se estava operando dentro dos números naturais.
Proposição IX-14. Se um número é o menor número que é medido por números primos, então ele
não é medido por qualquer outro número primo, exceto aqueles que inicialmente o mediam.
Figura 6
Na verdade o que esta proposição afirma é que se um número composto é o menor (mínimo)
múltiplo comum (mmc) de vários números primos, onde o mmc de primos, como se sabe, é o
produto destes números primos, então é evidente que ele será medido somente por seus fatores
primos. É uma prova simples e utiliza de proposição anterior (proposiçãoVII-30) que afirma: se
um primo mede um produto, então ele mede um dos fatores.
É a primeira aproximação do Teorema Fundamental da Aritmética, posteriormente demonstrado
por Gauss. Isto evidentemente se estende a qualquer número composto que tenha fatores primos
repetidos, por exemplo, 12 = 2 x 2 x 3. Neste exemplo somente os primos 2 e 3 medem 12 e, é
claro, nenhum outro primo. Observando a figura siga a demonstração dada à época.
Demonstração. “Seja A o menor número composto que é medido pelos primos B, C e D. Eu digo
que ele não é medido por qualquer outro número primo exceto B, C e D. Suponha que A pode ser
medido pelo número primo E, sendo E diferente de B, C e D. Agora, suponha que E mede A,
sendo que ele mede A conforme F, portanto F multiplicado por E é igual a A. E A é medido por
B, C e D. Mas, se dois números, multiplicados por um outro dá algum número, e se algum
número primo mede o produto, então ele mede um do números originais. Portanto cada número
primo B, C e D mede um dos números E e F. Agora eles não podem medir E, pois E é primo e
não é o mesmo que os números B, C e D. Portanto eles medem F, o qual é menor do que A, o que
é impossível, pois A é por hipótese o menor número medido por B, C e D. Portanto nenhum
número primo divide A, exceto B, C e D.”
8
Parece desnecessário insistir analisando as definições e proposições de Euclides. Mas o fato é que
pela primeira vez na história da matemática, são encontrados registros significativos sobre os
avanços conceituais e técnicos. Aqui Euclides avança a “idéia” que qualquer número pode ser
decomposto em fatores primos. Faz também um avanço técnico fundamental ao apresentar uma
demonstração por absurdo. Isto é avanço conceitual e técnico.
Proposição IX-20. Os números primos são mais do que qualquer número atribuído à imensidão
dos números primos.
Figura 7
Esta proposição demonstra que o conjunto dos primos é infinito e avança um tipo de
demonstração muito importante. É uma demonstração elegante e simples.
Demonstração. “Sejam dados os seguintes números primos A, B e C. Eu digo que há mais
números primos do que A, B, e C. Pegue o menor número DE medido por A, B e C. Adicione a
unidade DF a DE. Então EF pode ser primo ou não. Primeiro, seja ele primo. Então. Então, os
números primos A, B, C e EF, foram encontrados os quais são em maior quantidade do que A, B e
C. Segundo, seja EF não primo. Portanto ele é medido por algum primo. Seja ele medido por
algum número primo G. Eu digo que G não é nenhum dos números primos A, B e C. Vamos
supor que ele seja um destes números. Agora A, B e C medem DE, portanto G também mede DE.
Mas ele também mede EF. Portanto, G sendo um número, mede o restante, a unidade DF, o que é
absurdo. Entretanto, G não é o mesmo que qualquer um dos primos A, B e C. E pela hipótese ele
é primo. Portanto, os números primos A, B, C e G foram encontrados os quais são mais que a
quantidade dada inicialmente na multiplicidade dos primos.”
Esta é uma demonstração bela e elegante que aplica avanços conceituais anteriormente
consolidados, e utiliza a técnica de demonstração “por absurdo”. Utilizando uma linguagem atual
podemos supor que o plano da demonstração de Euclides era o seguinte: dada uma seqüência de
números primos, tão grande quanto se deseje, é possível construir o menor número composto que
é dividido por cada um dos números da seqüência inicial. Este número é o mmc de todos os
números primos da seqüência (como se sabe, é o produto deles). O passo seguinte é mostrar que
existe um novo número primo que não divide o menor número encontrado a partir de seqüência
inicial. Então existirá um novo número primo diferente de todos os anteriores. Na sua
demonstração Euclides usou apenas três numero primos, mas isto foi mais que suficiente.
9
Para encerrar o período grego da pequena história conceitual dos primos é preciso falar de
Erastóstenes que viveu em torno de 230 a. C.. Com base nos avanços conceituais conquistados
desde a época de Euclides, ele realizou um avanço técnico surpreendente para a aquele período.
Utilizando uma linguagem poética, se pode afirmar que ele se transformou em um pescador de
primos, pescando com sua rede - O Crivo de Erastóstenes - no caudaloso rio dos números
naturais, os cada vez mais raros números primos. Sem romantismo, seja o que interessa: qual a
preocupação de Erastóstenes em criar um método que permitisse separar os números primos
dentre o conjunto dos naturais? A resposta é: em primeiro lugar a teoria das proporções,
fundamental para a geometria grega. Em seguida o trabalho com os números planos, sólidos e
outras aplicações da época que obrigava a fatoração de números compostos em primos. Ver os
livros, VII e IX de Euclides (Euclides, 1944).
Ao terminar este período histórico é preciso deixar claro que o que mais importa são os avanços
conceituais, verdadeiras revoluções, que mudam a face da matemática e perduram.
3.2 Período Europeu
Após um longo interstício, isto referente ao tratamento específico dado aos números primos, a
preocupação com estes números é retomada, muitas vezes de forma indireta. Este período começa
com Fermat, Pierre de Fermat. (1601 - 1665), historicamente considerado por muitos o fundador
da Moderna Teoria dos Números e termina com Riemann, Georg Friedrich Bernhard Riemann
(1826 - 1866). Como na parte relativa aos gregos a preocupação neste tópico continua sendo a
identificação de desenvolvimentos conceituais e técnicos. Esta evolução dos conceitos em geral
jaz subjacente ao fato histórico. Então é preciso encontrá-la.
Foi neste período que teve início a preocupação com o problema que realmente importa neste
artigo: a determinação se um número dado é primo ou não. Ou, é possível determinar um método,
diferente do Crivo de Erastóstenes, capaz de gerar a seqüência dos números primos? Qual a
distribuição dos primos dentro do conjunto dos inteiros? Quais as diferentes formas que pode ser
caracterizado um número primo?
Se no período grego a Teoria dos Números estava praticamente concentrada em Euclides, no
momento Europeu, as coisas começaram a dispersar. Vamos inicialmente fazer uma cronologia
envolvendo os matemáticos que se empenharam com a Teoria dos Números e números primos
para posteriormente analisar os avanços conceituais e técnicos.
CRONOLOGIA DO PERÍODO EUROPEU PARA OS NÚMEROS PRIMOS
MATEMÁTICO
Fermat, P.
PERÍODO
TRABALHOS REALIZADOS
1601-1665
Fermat é considerado o fundador da moderna Teoria dos Números; Conjecturou o
chamado Pequeno Teorema de Fermat. Em linguagem matemática atual fica assim:
se p é um número primo, então para um natural a , a p ≡ a (mod p ) . Esta conjectura
foi provada por Euler em 1736. Atualmente este teorema é a base de muitos
resultados da Teoria dos Números e de métodos para a determinação de números
10
primos, utilizados em larga escala na computação e criptografia.
Mersenne
Goldbach
Euler
1588-1648
Conjecturou que todo número da forma M = 2 p − 1 é primo para p também primo.
A conjectura revelou-se falsa para vários valores de p . Até hoje os números de
Mersenne são usados para a busca de grandes números primos. Correspondente de
Fermat e outros matemáticos da época ele caracterizou-se por ser um grande
divulgador de achados matemáticos.
1690-1769
Foi correspondente de Euler é também grande divulgador das descobertas
matemáticas em sua época. É autor da conjectura, até hoje não demonstrada, que leva
o seu nome: todo inteiro par maior do que 2 é a soma de dois primos. Cálculos
computacionais indicam que a conjectura parece ser verdadeira.
1707-1783
Euler foi outro matemático que deu grandes contribuições à Teoria dos Números,
embora não tenha publicado nenhum tratado sobre o assunto, divulgando os seus
resultados por cartas ou artigos. Demonstrou o ”Pequeno Teorema de Fermat”
utilizando indução matemática e recursos elementares. Até hoje a sua função
chamada de “função
de Euler” é importantíssima na Teoria dos Números. O
seguinte resultado, uma simples generalização do Pequeno Teorema de Fermat, foi
demonstrada por ele: aϕ ( m) − 1 é divisível por m se a é co-primo com m .
Estabeleceu uma relação definitiva entre a análise e a teoria dos números por meio de
sua função zeta:
ζ (s) =
∞
n =1
1
n
s
=
∏ 1−
p
1
1
, onde o segundo membro é tomado para p primo e
ps
s > 1 é um número real.
Lagrange
1736-1813
Lagrange também deu grande importância a Teoria dos Números. Entre tantas outras
descobertas, provou o atualmente chamado Teorema de Wilson: p é um número
primo se, e somente se, ( p − 1)! ≡ −1 (mod p) .
Publicou em 1797-1798 a primeira abordagem exclusiva sobre a Teoria dos Números
em Essai sur la Théorie des Nombres. Tentou algumas demonstrações para o Último
Teorema de Fermat e iniciou o estudo da Lei da Reciprocidade Quadrática,
p
utilizando como notação o conhecido símbolo de Legendre:
= ±1 , se o inteiro
q
p co-primo com q seja (no caso positivo) ou não (no caso negativo) o resto
Legendre
1752-1833
quadrático da congruência x 2 ≡ p (mod q ) . Legendre também estabeleceu uma
conjectura sobre a distribuição dos números primos: π ( n) = n /(ln n − 1,08366 ) para
n crescendo indefinidamente. A função π (n ) é a função contagem dos números
primos até um número natural n . Demonstrou ainda que não existe função algébrica
racional que fornece sempre números primos. É com Euler, Lagrange e Legendre
que se inicia a Teoria Analítica dos Números e que tomou forma no decorrer dos
tempos.
Gauss
1777-1855
Logo no início de sua carreira Gauss estabeleceu a conjectura sobre a distribuição
dos números primos, que se tornou posteriormente o conhecido Teorema dos
Números Primos. A conjectura diz que a densidade da distribuição dos primos é
π ( n)
1
assintoticamente igual ao inverso do logaritmo de n . Isto é: D(n) =
≅
.
n
ln(n)
Foi ele que deu um formato definitivo à Teoria dos Números a partir de seu tratado
Disquisitiones Arithmeticae, obra publicada em 1801. Promoveu avanços conceituais
importantes. Antes da publicação do seu tratado a teoria dos números consistia em
11
um com junto isolado de teoremas e conjecturas. Gauss organizou o trabalho de seus
antecessores, preencheu lacunas, corrigiu demonstrações, incluiu idéias
extremamente inovadoras e deu uma estrutura sistemática para a Teoria dos
Números. A estrutura lógica do seu livro serviu de modelo para inúmeros
matemáticos que o seguiram. Foi Gauss quem deu a primeira demonstração completa
do Teorema Fundamental da Aritmética. É considerado por muitos historiadores
como o fundador da moderna teoria dos números.
Riemann
1826-1866
Função Zeta de Riemann e Hipótese de Riemann.
Hadamas
1865-1963
Prova do Teorema dos Números Primos – 1896.
Vallée-Poussin
1866-1962
Idem
Lobachevsky
1792-1856
Aproximação do Teorema dos Números Primos.
Tabela 1
Porém, antes de entrar na análise deste momento histórico, é necessário verificar os seus
antecedentes. Antes de Fermat, alguns avanços conceituais e técnicos, importantes para a teoria
dos números já haviam acontecido. É preciso situar de onde Fermat, Euler e outros começaram.
Identificar quais foram as suas bases conceituais e técnicas.
Para esta identificação - bases técnicas e conceituais - é necessário numa regressão histórica que
remonta ao início do segundo milênio d. C. na Europa, quando foi introduzido o sistema de
numeração hindu-arábico e as respectivas técnicas operatórias. O continente europeu só tomou
conhecimento formal deste sistema de numeração e suas técnicas, com um milênio de atraso em
relação aos árabes, com a obra Liber Abaci de Leonardo de Pisa, Leonardo de Pisa, (1170 - 1250)
também conhecido como Fibonacci. É provavelmente a partir daí que a cultura matemática
européia incorpora definitivamente o sistema hindu-arábico de numeração.
Este advento foi uma verdadeira iluminação para a matemática na Europa, pois trouxe consigo
avanços conceituais e técnicos extremamente relevantes ou até mesmo indispensáveis para o
futuro da matemática:
i. O conceito abstrato de número, desvinculado das operações de contagem e
medida;
ii. Numeração decimal de posição;
iii. O zero;
iv. E os métodos algoritmos de cálculo que substituíram o abacismo.
Este revolucionário “salto qualitativo”, em termos conceituais e técnicos, trouxe infinitas
possibilidades, sendo alguma delas a melhor visibilidade dos conjuntos numéricos e de sua
infinitude e a abstração que desvincula definitivamente estes conjuntos de processos de medida e
contagem.
Pela época de Fermat um novo avanço técnico e três conceituais já estavam se consolidando: a
notação matemática, o conceito de divisibilidade, os números negativos e a caracterização de
números primos e compostos.
12
O avanço técnico estava ocorrendo na notação matemática que passava gradativamente da forma
discursiva ou semidiscursiva para a literal (simbólica). Isto facilitava a visão do conteúdo
matemático, a sua expressão universal e as operações algébricas. A notação literal foi de fato um
avanço técnico considerável.
Quanto aos números negativos, o seu conceito demorou a ser introduzido na Europa. O certo é
que pela época de Fermat e Euler o conceito de número negativo como um número menor que
zero ainda estava sendo consolidado, embora fosse usado segundo regras operatórias bem
definidas, pois como diz Boyer (Boyer, 1974 p. 337): “A maior parte dos autores achava
necessário demorar-se longamente sobre as regras que governam a multiplicação de números
negativos, e alguns rejeitavam categoricamente a possibilidade de multiplicar dois números
negativos”.
É inequívoco que o conceito e as regras operatórias para números negativos e positivos, bem ou
mal, estavam estabelecidos e Euler as utilizava na forma instituída por ele, sem nenhuma
demonstração. Isto foi outro avanço conceitual e técnico considerável.
Na época de Euclides o conceito de número ainda não tinha sido abstraído da idéia de medida,
essencialmente medida geométrica, tanto que ele conceitua número composto com aquele que
pode ser medido por outro número e número primo como o que só pode ser medido pela unidade.
Pode-se supor, com certa certeza histórica, que a idéia atual de divisibilidade já estivesse presente
na primeira metade do século VII, embora só tenha sido formalizada a partir de Gauss. O
surgimento do que pode ser chamado de “conceito operacional” para divisibilidade, números
compostos e primos é fundamental para a nova teoria dos números. A partir desses conceitos é
possível testar pela divisão se um número inteiro é composto ou primo. A partir da idéia de
divisibilidade puderam ser concebidos os seguintes perfis operacionais para divisibilidade,
número inteiro composto e primo. Em linguagem atual o delineamento provavelmente seria:
i.
ii.
iii.
Um número inteiro a é divisível por b quando a = mb , sendo m um inteiro;
Um número inteiro a é composto quando ele é divisível por outro inteiro diferente
de 1 e dele mesmo;
Um inteiro positivo p, diferente de 1, é primo, se e somente se, 1 e p são os seus
únicos divisores.
É a partir destas concepções já postas que a teoria dos números pôde avançar, bastando para
confirmar esta idéia citar o decorrente Teorema Fundamental da Aritmética. É tendo como
fundamento este conjunto de idéias, que passaram a fazer parte da cultura matemática do período,
que Fermat, Euler, Gauss e tantos outros, puderam avançar celeremente rumo à Teoria dos
Números.
Prosseguindo a análise desse período é preciso identificar o legado de cada um em termos de
contribuição para o progresso conceitual e técnico em relação aos números primos. Para isto será
utilizada uma classificação de caráter meramente didático. A) Temos os exploradores e
aventureiros que por meio de experimentação e manipulações do conjunto dos inteiros, muitas
13
vezes sem nenhuma ou pouca preocupação com o rigor lógico, abrem caminhos e mostram
rumos. Nesta categoria estão Fermat e Euler; B) Noutra categoria, a dos formuladores e criadores
de paradigmas, está Gauss, Legendre e Riemann; C) Em uma terceira, a dos engenheiros que
buscam com base em conhecimento já estabelecido, demonstrar fatos ainda não consolidados,
erigindo um edifício lógico para formulações anteriores. Neste grupo estão Lagrange, Poussin e
Hadamas; D) Por fim, temos os divulgadores e correspondentes como Mersenne e Goldbach, que
à época realizaram o papel que hoje é feito pelos periódicos especializados e pela internet.
3.3 Período Intermediário
Este momento começa logo após Riemann, Hadamard e Vallée-Poussin e termina na década de
sessenta - setenta com a introdução da computação eletrônica digital (Lehmer). Muitos
matemáticos importantes pertencem a este período, e a maioria é desconhecida do grande
público, e mesmo de especialistas em matemática. A característica deste tempo são os avanços
conceituais referentes à linguagem matemática, atingindo níveis mais altos de abstração, técnicos
pela utilização de novas conquista da análise e tecnológico com o início da utilização de
computadores digitais em matemática. Ele é caracterizado por: a) aprofundamento da Teoria dos
Números e Teoria Analítica dos Números (Landau) em um corpo teórico organizado e
sistematizado, com a publicação de importantes obras e artigos; b) introdução de uma nova
linguagem algébrica, no caso, a linguagem da álgebra abstrata com as suas notações e os
conceitos de grupo, anel, ideal, corpo, etc.; c) tentativas de demonstrar a Hipótese de Riemann
que, embora nem sempre bem sucedidas, trouxeram progressos importantes para a teoria analítica
dos números; d) início da preocupação com algoritmos de fatoração e testes de primalidade para
serem utilizados em grandes números (Lehmer); e) início da busca por grandes números primos
utilizando computação. Cabe ressaltar que o maior número primo encontrado antes do surgimento
da computação eletrônica foi realizado pelo matemático francês Édouard Lucas, em 1876.
,é
Utilizando um método desenvolvido por ele, confirmou que o número de Mersenne
primo. Este número possui 39 algarismos (Sautoy, 2007. p. 220).
Os matemáticos que se dedicaram aos números nesse tempo são relativamente poucos: Edmund
Georg Hermann Landau (1877 - 1938), Godfrey Harold Hardy (1877 - 1947), John Edensor
Littlewood (1885 - 1977), Srinivasa Aiyangar Ramanujan (1887 – 1920), André Weil (1906 1998), Alan Mathison Turing (1912 - 1954) e Derrick Henry Lehmer (1905 - 1991). Ainda
podem se destacados os seguintes matemáticos que, de maneira própria, trabalharam com
números primos: Frank Nelson Cole, (1861 - 1926); Ernst Eduard Kummer (1810 - 1893) e
Helmut Hasse (1898 - 1979),
3.4 Período Atual
Após a segunda metade do século XIX até o início do último quarto do século XX, houve um
relativamente longo interstício, quando os primos continuaram a receber o tratamento usual
dentro da Teoria dos Números, sem trabalhos significativos sobre primalidade e fatoração de
inteiros.
14
Sobre este período Coutinho (Coutinho, 2001) faz algumas importantes constatações: a) todos os
fundamentos matemáticos utilizados para a definição de algoritmos atuais e sua demonstração já
eram conhecidas desde o século XIX; as inovações são devidas a trabalhos sobre o custo de um
algoritmo, distribuição dos primos em um intervalo e nas aplicações que em grande maioria tem
menos de vinte anos. Os avanços conceituais e técnicos desse período foram o nível de abstração
sobre o conceito de número, linguagem matemática, notação, método e aplicações na área de
computação.
Por conveniência, o momento atual fica definido como o período que começa na década de 70 do
século passado, até o surgimento do Algoritmo AKS no início deste século.
Uma simples revisão histórica sobre o século XX mostra que os primos e os estudos sobre
primalidade continuaram sendo um item de menor importância em matemática.
As coisas só mudaram a partir de década de 70 do século passado, com o surgimento dos
avançados sistemas de computação digital e a criação dos sistemas complexos de criptografia e
chave pública, na década de 80, que passaram a exigir a utilização de grandes números primos.
O surgimento dos sofisticados sistemas de criptografia trouxe um imperativo de ordem prática
para a retomada das pesquisas sobre números primos.
Surgiu a questão P e NP sobre o custo (tempo) de implementação computacional de algoritmos
para teste de primalidade ou geração de séries de primos.
O final deste momento é caracterizado pelo surgimento do algoritmo AKS que tem tudo para ser
um paradigma sobre algoritmos de primalidade e não necessariamente um novo paradigma
relativo aos primos. Só novos desenvolvimentos e pesquisa sobre o assunto poderá dizer se
estamos realmente em um novo momento significativo relativo aos números primos.
Os especialistas envolvidos com pesquisas sobre números primos, no momento atual, podem ser
divididos em dois grupos: matemáticos e cientistas da computação, ou “computer scientist” como
dizem os americanos. A linha que divide estes grupos é muito tênue, pois a maioria deles transita
nas duas áreas. A separação é apenas uma questão de ênfase em relação ao trabalho de cada um.
Outra dificuldade para analisar este período é que ainda não existe o distanciamento histórico
necessário.
3.4.1 Matemáticos
Victor S. Miller - Alan baker - Bryan John Birch - Enrico Bombieri - Paul Cohen - Alain Connes
- Paul Erd s - Martin Gardner - Alexander Grothendieck - Norman Levisohn - Carl Pomerance Paulo Ribenboin - Atle Salberg – Andrew Wiles –Peter Sarnak – Nick Katz
Estes matemáticos têm entre si algumas características em comum:
i. Foram pesquisadores da teoria dos números e da teoria analítica dos números e em
certos momentos de sua carreira estiveram profundamente envolvidos com os
números primos;
15
ii.
iii.
iv.
v.
vi.
vii.
Promoveram avanços técnicos e conceituais importantes, e até mesmo
revolucionários, em relação à linguagem matemática, metodologia e técnicas em
grandes áreas da matemática e teoria dos números;
Estudaram profundamente a função zeta de Riemann;
Realizaram estudos avançados referentes à demonstração da Hipótese de Riemann,
com exceção de André Wiles e Paulo Ribenboin;
Alguns escreveram obras de divulgação sobre números primos; e,
Com exceção de Wiles e Ribenboin, todos os outros transformaram a Hipótese de
Riemann no “Santo Graal” da matemática.
Martin Gardner e Paulo Ribenboin foram também dois excelentes divulgadores de
resultados sobre números primos, o primeiro de forma mais popular e o segundo
utilizando uma matemática mais sofisticada.
3.4.2 Cientistas da Computação
Depois de Turing e von Newman, deve-se a grupos como esses o desenvolvimento do que hoje é
chamado de Matemática Computacional e Ciência da Computação. Mostraram novos rumos e
abriram novos campos de trabalho. São eles por grupos de interesse: Gary L. Miller - Michael
Oser Rabin; Manindra Agrawal – Neeraj Kayal - Nitin Saxena; Ron Rivest – Adi Shamir – Len
Adleman; Victor S. Miller – Neal Koblitz.
3.5 Encerramento dos Períodos Históricos
Esta breve e incompleta história dos números primos tem uma finalidade: analisar o ocorrido e
explorar o futuro.
Além do proselitismo esporádico sobre o assunto, historicamente os números primos têm sido
tratados como simples curiosidades matemática, a não ser em períodos específicos quando
receberam tratamento adequado ao assunto estudado.
Foi assim com os gregos, como instrumento para fatorar medidas geométricas; ocorreu no
momento de Gauss quando foram utilizados apenas como instrumento para avanços na Teoria
dos Números e para a nova Teoria Analítica dos Números; ocorre no momento atual quando
estão sendo utilizados como partes de complexos sistemas de criptografia. Acontece também
com o novíssimo algoritmo AKS. Isto quer dizer que as pesquisas sobre números primos só
conseguem avanços quando demandadas para novas aplicações. Este é o caso do momento atual
com os grandes progressos da computação, digital ou quântica.
Em uma visão histórica do desenvolvimento da matemática, podemos identificar certa
regularidade de fatos quanto ao crescimento da produção em determinadas épocas e áreas. É o
princípio do desenvolvimento e da produção matemática: o desenvolvimento da matemática é
estimulado pela presença de problemas desafiadores, com caráter teórico ou prático, ainda não
solucionados.
16
Com certeza estamos vivendo um desses momentos. Com as precauções necessárias quando se
fala do futuro, talvez possa ser avançada a seguinte conclusão: com o advento do algoritmo AKS
e dos grandes sistemas de computação (inclusive a computação quântica): estamos vivendo um
grande momento da matemática em relação aos números primos. Uma revolução científica no
sentido de T. Khun (Khun, 1982). O prelúdio para o surgimento de novos paradigmas. Estamos
vivendo um novo momento significativo para os números primos.
4. NÚMEROS PRIMOS – EVOLUÇÃO DO CONCEITO
Ao invés de falar sobre conceito ou definição de número primos, talvez seja melhor adotar a idéia
de caracterização de um número primo. Isto é, quando um número primo está bem caracterizado,
dentro de qualquer contexto matemático. Neste sentido a caracterização pode ser feita por uma
definição ou conceito, por uma proposição ou teorema.
Primeira caracterização formal de número natural primo é dada por Euclides, logo no início do
Livro VII dos Elementos. Após definir número, ele introduz o conceito de número composto e
primo. Para Euclides número “composto é aquele que pode ser medido por outro número” e
número primo é “o número que só pode ser medido pela unidade”. O fato é que à época a idéia
de número primo e composto está muito mais ligada ao conceito de múltiplo do que ao conceito
de divisor próprio de um número. Esta pequena distinção é importante como veremos a seguir.
A segunda caracterização para número primo aparece incorporada à cultura matemática européia
já pela época de Fermat. Foi uma evolução conceitual importante, provavelmente devida aos
árabes. Embora de certa forma equivalente ao conceito de Euclides, esta nova caracterização é
muito mais operacional, facilitando operações, experimentações e demonstrações. Ela está
fundamentada na idéia de divisor e divisor próprio de um número. A divisibilidade é a
contrapartida para a multiplicidade utilizada por Euclides. O novo conceito de número primo, até
onde se conseguiu pesquisar, é então utilizado por Fermat, Euler, Legendre, Gauss e outros sem
nenhuma caracterização formal do que seja número primo. É possível inferir, por suas
proposições e conjecturas, que eles já utilizavam a definição forte de número primo como é dada
na atualidade em alguns manuais de teoria dos números:
Um inteiro positivo p > 1 é um número primo, se e somente se, 1 e p são os seus únicos
divisores positivos.
Esta caracterização bi-condicional é fundamental para o desenvolvimento e demonstração de
qualquer proposição sobre números primos, ao contrário da caracterização fraca, muito utilizada
em bons manuais:
Um número inteiro p > 1 possuindo somente dois divisores positivos 1 e p é chamado de primo.
Na época de Fermat, Euler, etc. já era utilizada a caracterização forte para número primo, pois
suas pesquisas e demonstrações exigiam o seguinte: a) dado um número primo p é sabido que
ele tem somente dois divisores positivos, 1 e p ; b) dado um número inteiro n se ele tiver apenas
dois divisores inteiros positivos, 1 e n , então ele é primo.
17
O fato que até hoje não surgiu uma nova caracterização de número primo que pudesse indicar um
progresso teórico e conceitual subvertedor da ordem estabelecida.
Os únicos autores, até onde as pesquisas puderam mostrar, e que se preocuparam indiretamente
com a caracterização para primos foram Ribenboin (Ribenboin, 2001) e Granville (Granville,
2004). A seguir algumas proposições que “em tese“ poderiam dar uma nova caracterização para
um número primo:
1a Caracterização – O Pequeno Teorema de Fermat: Se p é um primo se a é um numero
natural, então a p ≡ a (mod p ) . Em particular, se p não divide a , então a p −1 ≡ 1 (mod p) .
Este teorema seria então uma excelente caracterização de um número primo se sua recíproca
fosse sempre verdadeira. Mas isto não é verdade. Então temos uma caracterização fraca para um
número primo.
2a Caracterização – Teorema de Wilson: Um inteiro p > 1 é um número primo, se e somente se
( p − 1)! ≡ −1 (mod p ) .
Embora este teorema possa caracterizar muito bem um número primo, ele não é utilitário. Devido
à expansão fatorial ele não é prático para testar primalidade ou ser utilizado em processos de
fatoração.
Outra caracterização é sugerida por Ribenboin, mas ele mesmo se pergunta se esta propriedade
realmente caracteriza um número primo.
3a Caracterização – Propriedade de Giuca: Ele parte do Teorema de Fermat e chega, de maneira
fácil como afirma Ribenboin, que 1 p −1 + 2 p −1 + + ( p − 1) p −1 ≡ −1 (mod p) para p primo. Então
ele perguntou se a recíproca é verdadeira, isto é, para n > 1 , e se n divide a expressão
1n−1 + 2 n −1 + + ( p − 1) n−1 + 1 , então n é primo? Para Ribenboin é fácil ver que o natural n
satisfaz a propriedade se, e somente se, p 2 ( p − 1) divide n − p para cada número p dividindo
n . É realmente complicado caracterizar um número primo dessa forma.
4a Caracterização – Função
de Euler: Sabe-se que para p primo ϕ ( p ) = p − 1 . Lehmer
conjecturou que se fosse dado um número composto n , não haveria nenhum n , tal que ϕ (n) ,
dividisse n − 1 .
Esta hipótese ainda não foi demonstrada, e caso seja será uma excelente caracterização de
números primos, totalmente operacional.
Em um de seus artigos Granville (Granville, 2004 p. 4) sugere que o Teorema de Manindra
Agrawal – Neeraj Kayal - Nitin Saxena, que fundamenta o algoritmo AKS, é uma excelente
caracterização (o que não é verdade) para os números primos, afirmando que ela, embora a
primeira vista pareça complicada, na realidade não é.
18
5a Caracterização – Teorema de Manindra Agrawal – Neeraj Kayal - Nitin Saxena: Para um
dado inteiro n ≥ 2 , seja r um inteiro positivo menor que n , para o qual n tem ordem menor que
(log n) 2 modulo r . Então n é primo se, e somente se:
• n não é uma potência perfeita de algum número inteiro;
• n não tem algum fator primo menor ou igual a r ;
• ( x + a ) 2 ≡ x 2 + a (mod n, x r − 1) para cada inteiro a , 1 ≤ a ≤ r log n .
Todas estas caracterizações têm um furo na origem, pois elas utilizam o conceito de primo já
anteriormente definido.
Em termos de uma evolução conceitual revolucionária para os números primos o que é necessário
é uma nova caracterização para números primos, mais abrangente, consistente e operacional. Pois
o fato é que existe um impasse, parecido com o que aconteceu no desenvolvimento histórico da
matemática, forçando o surgimento dos irracionais, dos números negativos e complexos. Desde
Euclides e Fermat não houve nenhum avanço na caracterização dos primos. Nenhuma corrente
matemática ou grupo se preocupou com este aspecto. Uma caracterização avançada de número
primo teria que passar pelo seguinte teste: é de fácil entendimento e operacional; garante as bases
teóricas da teoria dos números; pode ser utilizada para demonstrar o Teorema Fundamental da
Aritmética; melhora o entendimento sobre a distribuição dos primos; pode ser utilizada para
demonstrar conjecturas até hoje não provadas. Mas a questão que antecede é: essa caracterização
existe? A resposta é: ainda não!
5. PRIMALIDADE: TESTES E FUNDAMENTOS
Atualmente existe mais de uma centena de testes de primalidade, cada um deles com uma
fundamentação teórica diferente. São testes determinísticos ou probabilísticos, executados em
tempo polinomial ou tempo exponencial, fundamentados em teoremas ou conjecturas. E assim
por diante. Talvez então seja conveniente tentar estabelecer algum tipo de classificação, por mais
inadequada que ela seja. Só assim é possível estabelecer uma visão mais ordenada sobre o
emaranhado dos testes de primalidade. Uma descrição simples para os testes pode dar uma idéia
da complexidade do assunto. Assim existem testes que:
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
Levam o nome do autor(res) ou da instituição que os desenvolveram;
É resultado de melhoria de testes anteriores;
São a mistura de vários resultados ou testes anteriores;
São executados em tempo polinomial ou exponencial;
São determinísticos ou probabilísticos;
São aplicados a números genéricos ou a números de forma específica;
São baseados em teoremas ou em conjecturas;
São baseados em congruências ou não;
São executados em um computador ou exigem computadores em rede;
São executados em computadores convencionais ou necessitam um novo tipo de
computador.
19
O campo dos testes de primalidade está ficando cada vez mais amplo e complexo. Talvez fosse
melhor dizer caótico. A título de curiosidade, poderia ser sugerido um sistema mnemônico de
classificação que levasse em conta estas dez categorias.
Na era da matemática computacional, será adotado como principal critério de classificação o
tempo de execução: se tempo polinomial, exponencial ou semi-polinomial. Este critério é
fundamental, pois para testes de grandes números a execução de determinados algoritmos em
tempo exponencial, como por exemplo, um algoritmo fundamentado no teorema de Wilson,
levaria um tempo além de qualquer imaginação ou desejo.
Serão apresentados alguns testes de primalidade mais representativos de sua categoria, conforme
os critérios anteriores. Estes testes podem mostrar que tipo de desenvolvimento conceitual,
técnico ou tecnológico está envolvido em sua concepção. E este é o objetivo. Cabe ressaltar que
os resultados importantes aconteceram na aplicação prática da teoria dos números, e não no
desenvolvimento da teoria. Esta constatação é fundamental para as conclusões que serão obtidas
sobre primalidade.
Na descrição e análise dos testes, a apresentação será na forma: nome do teste, descrição e
fundamentação teórica básica. A preocupação é com a matemática envolvida na fundamentação
dos algoritmos e não no detalhamento e sua demonstração.
5.1 Algoritmo de Fermat
Este exemplo está vinculado à necessidade de Fermat encontrar um processo para fatorar
números relativamente grandes, para a época é claro, ou mostrar sua primalidade. Fermat
desenvolveu dois algoritmos. Um para fatorar um número inteiro qualquer e outro específico para
números de Mersenne. Estes resultados mostram o seu engenho na manipulação dos números.
Segundo Coutinho (Coutinho, 2001 p. 40 e 157), o primeiro método consistia em fatorar um
número utilizando um algoritmo mais ou menos como o descrito em continuação.
Com base em resultados anteriormente estabelecidos ele desenvolveu o processo supondo
inicialmente que:
a) O número n é um inteiro positivo impar, pois se for par tem 2 como fator;
b) Sendo n ímpar podemos notar que pelo teorema anterior n = x 2 − y 2 = ( x − y )( x + y ) ;
c) Então os fatores de n são a = ( x − y ) e b = ( x + y ) .
Então, fazendo y = n x n − n , inicia-se x = [n] , onde [n] é a parte inteira de
n ; este valor é
tomado porque pelo menos um dos fatores, no caso ( x − y ) ≤ n ; então x é incrementado de 1
em 1, até que seja encontrado um valor inteiro para y; logo x =
y 2 + n ; então são encontrados
20
os valores dos fatores a e b . Quando um valor inteiro para y não é encontrado, o número é
n +1
primo, e o algoritmo, neste caso, é finalizado para x =
.
2
Embora não seja, segundo os critérios atuais, um processo em tempo polinomial, era um
algoritmo extremamente forte para as necessidades e possibilidades computacionais daquele
tempo. Cabe ressaltar também que este deve ser o primeiro algoritmo criado para fatorar um
número inteiro ou testar a sua primalidade, além do costumeiro processo da divisão. Novamente
Fermat inovou tecnicamente
5.2 Algoritmo AKS
O algoritmo AKS foi desenvolvido em 2002 por Manindra Agrawal – Neeraj Kayal - Nitin
Saxena. É um teste original e determinístico que exige somente tempo polinomial. Está
fundamentado no pequeno teorema de Fermat e em uma das suas generalizações. Utiliza
congruência entre polinômios e é aplicado a números inteiros genéricos. Pode ser rodado em
computadores comuns com memória suficiente.
O teste está fundamentado na seguinte congruência entre polinômios: Seja a um inteiro e n um
natural, n ≥ 2 e mdc ( a, n) = 1 . Então n é primo se, e somente se, ( x + a) n ≡ x n + a (mod n) .
Como dizem os autores (Manindra Agrawal, Neeraj Kayal e Nitin Saxena, 2002), a identidade
anterior sugere um teste simples de primalidade. Basta testar a congruência para todo o a que não
divide n. Isto leva tempo, pois para n muito grande será necessário testar todo o conjunto cujos
elementos são todos os inteiros a que são relativamente primos com n .
Então a questão é contornar a situação, transformando-a de exponencial em polinomial.
Parafraseando Ribenboin, é fato que técnicos brilhantes inventam artimanhas para abreviarem
etapas. Isto é realizado utilizando o seguinte artifício, que contorna mais ou menos o problema. É
( x + a ) n ≡ x n + a (mod x r − 1, n)
para um pequeno r apropriadamente escolhido. O r é tal que or (n) > log 2 n , onde or (n) é a
ordem de n módulo r , como já foi definido anteriormente. Trocando em miúdos é o seguinte: o
1
+σ
2
valor de r será adequado se r − 1 , contiver um fator primo maior ou igual a r para σ > 0 . O
fato testada a congruência anterior da seguinte forma:é que mesmo que seja encontrada uma
ordem adequada de r a congruência é ainda satisfeita para alguns n compostos com certos
valores de a e r . Isto leva à necessidade de testar vários valores de a .
Sem qualquer desmerecimento ao avanço técnico considerável alcançado com o AKS, o fato é
que ele não trouxe nenhum progresso conceitual. Toda a matemática necessária, linguagem e
notação já estavam desenvolvidas desde o século XIX.
Existe uma conjectura que diz que: Seja r primo que não divide
( x + a ) n ≡ x n + a (mod x r − 1, n) , então n é primo ou n 2 ≡ 1 (mod r ) .
n , e se
21
Se tivessem provado esta conjectura para todos os pares ( n, r ) , o algoritmo seria um salto
conceitual fundamental. Porém existem trabalhos que levantam a hipótese da conjectura ser falsa.
5.3 Teste de Miller
Desenvolvido em 1976, por Gary l. Miller, o teste original é determinístico e executado em
tempo polinomial. É aplicado a qualquer inteiro e está fundamenta na hipótese de Riemann e
pode ser executado em qualquer computador. Em uma de suas formas está baseado em
congruências que definem o conceito de testemunha para um número composto, desenvolvido
por M. Rabin. E para certos números pode ser realizado com uma calculadora.
Teste: “Seja N um inteiro ímpar. Se existir um inteiro a , com mdc ( N , a ) = 1 e
1 < a < 2(log N ) 2 , tal que a seja testemunha para N , então N é composto. Caso contrário N
é primo”.
Um número a a é uma testemunha para N , se satisfizer a condição a N −1 ≡/ 1 (mod N ) .
Logo, se N tem uma testemunha, N é composto.
É difícil ver onde a hipótese de Riemann entra nesta história. Mas, neste caso, é preciso aceitar a
afirmação de Ribenboin (Ribenboin, 2001 p. 102) sobre o assunto. Na realidade Miller mostrou
que qualquer número composto N tem uma testemunha a < 70(log N ) 2 considerando a Hipótese
de Riemann verdadeira. Este algoritmo está fundamentado em conquistas técnicas mais recentes
sobre a hipótese de Riemann. Se provada essa hipótese, então Miller terá conseguido um passo
gigantesco para testes de primalidade.
5.4 O Teste APR
É o teste desenvolvido por Adleman, Pomerance e Rumely em 1983. É resultado de melhoria de
testes como o de Lucas-Lehmer. É considerado um teste inovador que abriu novos caminhos para
testes de primalidade. É determinístico, genérico e executado em tempo semi-polinomial, está
fundamentado em teoremas e congruências e pode ser executado em computadores de velocidade
considerada média. Sobre o algoritmo Ribenboin (Ribenboin, 2001 pp. 102-103) tece as seguintes
considerações:
Com efeito:
(i)
Pode ser aplicado a números naturais N arbitrários, sem necessidade de conhecer os
fatores primos de N − 1 ou de N + 1 .
(ii)
O teste é rigorosamente justificado e, para isso, foi necessário, pela primeira vez nesse
domínio, apelar para resultados difíceis da teoria dos números algébricos; há necessidade
de intervenção de cálculos com as raízes da unidade e da lei de reciprocidade geral do
símbolo de restos de potências. (Notou você que nunca explicamos o significado dessas
noções? A razão é que elas estão muito além do que pretendíamos escrever neste livro!)
(iii)
Seu tempo de execução t ( N ) é quase um polinômio; mais precisamente, existem
constantes efetivamente calculáveis, 0 < C ′ < C , tais que
22
(log N ) C ′ log log log N ≤ t ( N ) ≤ (log N ) C log log log N
O tempo de execução do teste APR deteve o recorde para os testes de primalidade
determinísticos.
É evidente que esta consideração final foi feita antes da chegada do algoritmo AKS.
Pomerance dá uma descrição compreensível (Pomerance, 1981 p. 102), do teste: Seja n número
inteiro que se quer testar a primalidade. Então são calculados os menores quadrados inteiros
f (n) , de tal modo que ∏ q > n onde q é primo. Os fatores primos de f (n) são ditos
q −1 | f ( n )
primos iniciais, e os primos q , com q − 1 | f ( n) , são chamados de primos Euclidianos. É então
verificado se n é dividido por primos não iniciais ou Euclidianos. Se n é composto então ele tem
um fator primo r ≤ n . A dificuldade está em encontrar r . Ver Pomerance (Pomerance, 1981 p.
102).
5.5 Teste de Miller – Rabin
Este teste foi desenvolvido por Gary l. Miller e Michael Oser Rabin. Está fundamentado em
congruências e no pequeno teorema de Fermat. É um teste básico que inaugurou a era dos testes
de primalidade probabilísticos. Sua execução se dá em tempo polinomial e pode ser rodado em
qualquer computador. Pode ser utilizado para qualquer tipo de números inteiros. A seguir uma
descrição muito simples do teste. Na realidade o teste dá a probabilidade de um número inteiro
grande n ser primo. Então é escolhido um número a , como base, no intervalo [ 2, n − 1] .
Escolhido um número a neste intervalo, é verificado se ele é testemunha de n :
i.
a n −1 ≡/ 1 (mod N ) ;
ii.
iii.
Calcula-se o valor d = mdc(a
Verifica-se se 1 < d < N .
N −1
2k
− 1, N ) para um determinado valor de k ;
Se a é aprovado então ele é uma testemunha de N , e N é composto. Se a não for testemunha
1
de N , então N tem probabilidade de
de ser primo. O item (i) é o Pequeno Teorema de
2
Fermat; (ii) e (iii) verificam se N tem um divisor comum com outro número no intervalo (1, N ) .
A probabilidade de N ser um inteiro primo é dada, como pode ser facilmente verificado, por:
r
1
,
p( N ) =
σ
σ =1 2
onde r é a quantidade das bases que não passaram no teste. Então para um teste com 7 bases não
aprovadas como testemunhas, seria encontrada a seguinte probabilidade:
1 1 1 1
1
1
1
9921
p( N ) = + + + +
+
+
≅
2 4 8 16 32 64 128 10.000
Então a probabilidade de N ser primo é de aproximadamente 99,21 %.
23
É evidente, que mesmo esta probabilidade alta pode ser enganosa. Seja o número pseudoprimo
forte, nas bases 2, 3, 5 e 7, (3.215.031.751) = (151)(751)(28351). A probabilidade de que ele
fosse primo é de 93,75 %. Há sempre um risco.
Esta probabilidade surge do Pequeno Teorema de Fermat, para o qual não vale à recíproca. Mas
foi um avanço conceitual interessante, pois introduziu a probabilidade na teoria dos números ou
vice-versa.
A partir deste teste surgiram muitos outros não determinísticos. Este modelo iniciou uma nova
classe de provas. As provas probabilísticas de primalidade.
5.6 Gimps
Great Internet Mersenne Prime Search (GIMPS), foi lançada no início de 1996 por George
Woltman. Antes de ser um teste de primalidade, é na realidade uma busca para encontrar grandes
números primos de Mersenne e a fatoração de números de Mersenne em geral. É fundamentado,
basicamente, nas provas de primalidade de Lucas – Lehmer. É evidentemente executado em
tempo exponencial. Usa computação distribuída em rede pela Internet, comandada por um
computador central.
Como já foi dito o teste usa uma associação de provas de primalidade, utilizando a seguinte
estratégia:
i.
ii.
iii.
Gera uma base de dados com Números de Mersenne;
Emprega um “mix” de provas de primalidade e busca fatores para n + 1 e n − 1 ;
Testa a primalidade ou encontra os fatores para um dado número de Mersenne.
Este trabalho não produz nenhum avanço conceitual em termos de números primos. Em relação à
teoria dos números é uma mera curiosidade. Permite, porém uma visão ampla sobre a distribuição
dos números primos em termos dimensionais. Para a computação algébrica é um avanço
considerável, em termos conceituais e técnicos, com a utilização de computação distribuída,
criando e desenvolvendo novas técnicas.
5.7 Ecpp
ECPP significa, em inglês “ellipitc curve primality proving”. Foi desenvolvido por A. O. L.
Atkin e F. Morain em 1993, no artigo Ellipitc Curves and Primality Proving. Teste de
primalidade modelo, criou uma nova classe de avaliação de primalidade de um número.
Totalmente justificado utilizando curvas elípticas sobre corpos finitos. É determinístico, aplicável
a qualquer inteiro e executado em provável tempo polinomial. Pode ser executado em
computadores comuns. Apresenta resultados intermediários cuja lista é chamada de certificado de
primalidade para um determinado número primo testado. A extensão e complexidade técnica do
artigo (Atkin, et al., 1993), impede que seja realizada uma análise resumida e mais acurada do
24
teste de primalidade. Na conclusão do artigo os autores tecem algumas considerações importantes
(Atkin, et al., 1993 pp. 38-39):
i. O algoritmo utiliza a teoria das curvas elípticas com multiplicação sobre corpos
finitos;
ii. O algoritmo tem complexidade polinomial, e possui excelente desempenho
prático, pois demonstra a primalidade de números de 100 a 1.5000 algarismos;
iii. Ele realiza o teste para um número de até 400 dígitos, em poucos dias, utilizando
uma estação de trabalho simples;
iv. Para números de mais de 800 dígitos é utilizado processamento distribuído em dez
estações de trabalho e gasta um tempo real de uma semana;
Assim é sugerida a seguinte estratégia para um computador com uma determinada velocidade
média de processamento:
1. Peneiramento e posterior fatorização dos números de pontos da curva;
2. Utilizar exponenciação módulo p ;
3. Exponenciação de uma curva elíptica módulo p ;
4. Solução de polinômios utilizando congruências módulo p ;
A análise matemática deste teste de primalidade está além das possibilidades deste artigo. A
dificuldade para analisar este tipo de prova é que em sua concepção é utilizada uma linguagem
matemática bastante atual e sofisticada. O grande avanço conceitual e técnico conseguido pelos
autores é a introdução das curvas elípticas no estudo dos números primos e a utilização de
linguagem e resultados mais atuais sobre álgebra abstrata e sua aplicação à teoria dos números. O
ECPP criou uma nova classe de testes de primalidade. As provas de primalidade utilizando
curvas elípticas. Mas não deixou de utilizar congruências.
5.8 Algoritmo de Fatoração de Shor
P. Shor (Shor, 1994) apresentou o seu algoritmo para fatoração em computadores quânticos em
artigo de 1994. É um algoritmo de fatoração e não para testes de primalidade. Foi elaborado para
ser processado em um computador quântico, cujas bases teóricas já estão postas. Trabalha com
complexidade polinomial. Aqui é colocado como uma interessante perspectiva, pois por este
algoritmo qualquer número composto pode ser fatorado dentro de uma probabilidade
suficientemente segura. É então uma metodologia probabilística. A questão do computador
quântico não está só na velocidade de processamento, mas principalmente na forma de processar,
neste caso, chamada de superposição quântica. O passo quântico utilizado no algoritmo é a
realização de uma Transformada Discreta de Fourier. As bases matemáticas do algoritmo são
relativamente simples. Segue a descrição e fundamentos matemáticos do método. Esta análise
está baseada no artigo de Ekert e Jozsa (Ekert, et al., 1996 pp. 740-742;750-751).
Matematicamente o algoritmo está basicamente fundamentado em uma definição e duas
proposições aqui colocadas de forma elementar, onde n é o número impar que se pretende
fatorar:
25
Definição. O valor r é definido como a ordem de x , módulo n . Então r é o período da função
f (a) ≡ x a (mod n) que define a seqüência
x 0 (mod n), x 1 (mod n), x 2 (mod n), , x a (mod n),
O período da função é a parte “quântica” do algoritmo. Ele é encontrado, segundo Ekert, em
tempo polinomial, utilizando uma versão quântica da transformada discreta de Fourier. Aliás, esta
é toda a base do algoritmo, encontrar o período r da função f (a ) , com alta probabilidade de
acerto.
Proposição A. Sendo r o menor valor de a > 0 , tal que x a ≡ 1 (mod n) e se para r par,
r
2
r
2
x ≡/ −1 (mod n) , então d = mdc( x − 1, n) , é um fator de n .
Lembrando que o valor provável de a foi encontrado utilizando a TDF.
r
Proposição B. A probabilidade p de que r seja par e x 2 ≡/ ±1 (mod n) , é dada por
1
p ≥ 1 − k −1 , onde k o número de fatores primos de n .
2
Um exemplo pode ajudar no entendimento do algoritmo. Seja o número, pequeno é claro, n = 15 .
Seus fatores são 3 e 5, é claro.
1º. Passo: escolher aleatoriamente valores de y tais que 1 ≤ y ≤ 15 até encontrar y
tal que mdc ( y, n) = mdc ( y , 15) = 1 . Esta probabilidade é maior ou igual a
1
1
=
= 0,37 . Na realidade é preciso escolher um número do conjunto
log n log 15
{2,4,7,8,11,13,14}. A probabilidade da escolha de um número no conjunto é 0,46.
2º. Passo: Supondo que o valor de y selecionado seja y = 11 , o mdc (11, 15) = 1 . A
ordem de r , para
f (1) ≡ 111 (mod 15) = 11 ,
y = 11 é dada por:
f (2) ≡ 112 (mod 15) = 1 ,
f (3) ≡ 113 (mod 15) = 11 ,
f (4) ≡ 114 (mod 15) = 1 .
Então a ordem de r é dada pela seqüência: {11, 1, 11, 1, 11, 1, } . Logo r = 2 .
30.
r
2
Passo: Fazendo x = y 2 = 11 2 = 11 . Calculando o mdc ( x ± 1, 15)
mdc (10, 15) = 5 e mdc (12, 15) = 3 . Então 3 e 5 são os dois fatores de 15.
fica:
Calculando a ordem de todos os elementos de {2,4,7,8,11,13,14}, fica, respectivamente, {4, 2, 4,
4, 2, 4, 2}.
26
r
2
Por curiosidade, seja y = 14 , então x = y 2 = 14 2 = 14 . Mas, 14 ≡ −1 (mod 15) . Então o teste
falha para 14, mas não falha para as outras bases. A probabilidade do teste não falhar é maior que
0,5. Na realidade é 0,85.
Este é um método de fatoração complexo, mas como afirma o autor, tem tempo polinomial para
um computador quântico. É evidente um processo que exige um computador do tipo especial,
pois conforme os artigos consultados, o cálculo do mdc é feito pelo algoritmo de Euclides. Isto
leva tempo, muito tempo.
Neste tópico foram apresentados vários algoritmos, representantes mais importantes de sua
classe. Na realidade eles representam, sinteticamente, o estado da arte sobre o assunto. Foram
constatados grandes avanços técnicos e tecnológicos, mas poucos avanços conceituais de relevo.
6. CONCLUSÃO
Neste momento é interessante repetir André Weil, quando se referindo à matemática afirma:
“A estratégia, por sua vez, consiste na arte de reconhecer os problemas principais, atacá-los em seus
pontos fracos, e estabelecer linhas-mestras para o avanço posterior. A estratégia matemática lida com
objetivos em longo prazo: requer uma profunda compreensão das tendências mais amplas, e da evolução
nas idéias no decorrer de longos períodos de tempo.”
Então vale o seguinte dito: a matemática de hoje é o que foi a matemática de ontem e o que
pretende ser a matemática do amanhã.
A hipótese inicial deste artigo foi estabelecida da seguinte maneira: é possível estabelecer um
percurso factível de estudo e pesquisa sobre testes de primalidade. A busca por um roteiro foi
procurada de duas maneiras: a) levantando o estado da arte sobre o assunto, ao longo do tempo;
b) fazendo uma verificação sistemática dos avanços conceituais, técnicos e tecnológicos. Então
um programa de estudo e pesquisas sobre o assunto podem contemplar três áreas, já definidas
anteriormente como categorias:
Avanços conceituais
a) Busca por uma nova caracterização para números primos; o desenvolvimento dos
conceitos de número negativo, número irracional e número complexo é uma
comprovação desse tipo de necessidade e mostra a possibilidade; assim a teoria
dos números tomaria novos rumos e muitas conjecturas ainda não demonstradas
seriam provadas; os avanços conceituais sobre o significado de números primos e
composto dentro da Teoria Analítica dos Números e da Análise Complexa, são
caminhos já iniciados por Euler, Gauss e Riemann, e até onde foi possível
verificar, relativamente abandonados (Boyer, 1974). Este parece o caminho mais
promissor, tendo em vista que a Hipótese de Riemann consta como um dos
Problemas do Milênio (Devlin, 2004);
b) Comprovação ou não da hipótese de Riemann;
27
c) Criação de uma classe de algoritmos para prova de primalidade, utilizando uma
caracterização adequada de números primos e compostos, envolvendo métodos e
técnicas matemáticas facilmente computáveis; o algoritmo AKS é uma evidência
dessa possibilidade;
d) Desenvolver métodos de fatoração fundamentados na simplicidade computacional
e não na complexidade matemática, pois hoje a sofisticação da linguagem
matemática está chegando antes da plausibilidade; complexidade de linguagem
não é necessariamente indicativo de profundidade matemática; sofisticação não é
sinônimo de abstração;
Avanços Técnicos
Os avanços técnicos sobre testes de primalidade e fatoração de inteiros, cujas bases já estão
postas, exigindo somente bastante aprofundamento, visão e uma intuição certa, devem
provavelmente acontecer em duas áreas:
i. na matemática, em relação à computação quântica, cuja base teórica está pronta;
em relação a algoritmos de fatoração e testes de primalidade e que pressupõe a
computação quântica como base. São tipos de algoritmos que precisam de uma
atenção maior da matemática, evitando somente o uso da força bruta, por exemplo,
o algoritmo de Shor;
ii. no progresso técnico com base nas estruturas conceituais existentes que tem como
exemplo o Algoritmo AKS. É provavelmente a intuição de Coutinho (Coutinho,
2004) quando especula:
“De fato, a simplicidade deste algoritmo (AKS) traz à tona uma pergunta ainda mais
importante, e que pode ser o prenúncio de grandes resultados que estão por vir. Que outros
algoritmos, igualmente simples, ainda não fomos bastante espertos para descobrir?”
Avanços Tecnológicos
No desenvolvimento da matemática, está comprovado pela história recente, que avanços
tecnológicos importantes conduzem avanços na área, também importantes. Neste caso, antever os
progressos tecnológicos, é uma forma de definir um programa de trabalho na área dos números
primos e metodologias de fatoração de inteiros.
Para encerrar, referindo-se à obra de Laplace, suas posições políticas e ao imediatismo prático na
matemática, Boyer (Boyer, 1974) coloca de forma bela e incontestável o seguinte:
“Uma lição que se pode tirar é que as coisas que realmente contam na matemática e que têm
influência duradoura, não são as que se inspiram em um utilitarismo imediatista. Mesmo em
tempos de crise são as coisas do “espírito” (no sentido francês) que mais contam, e essas são talvez
melhor transmitidas pelos grandes mestres”.
E a luta continua!!
28
REFERÊNCIAS BIBLIOGRÁFICAS
AGRAWAL, Manindra, KAYAL, Neeraj e SAXENA, Nitin. Primes is in P. Disponível em
<http://www.cse.iitk.ac.in/~manindra/algebra/primality_v6.pdf> Acesso em: 04 jun. 2008.
ATKIN, A. O. L.; MORAIN F. Elliptic curves and primality proving. Math. Comp. 61, 203, p. 29-68, 1993.
Disponível em < http://www.lix.polytechnique.fr/~morain/Articles/articles.english.html> Acesso em: 7 jun. 2008.
BOMBIERI, Enrico. The Riemann hypoteses. Clay Mathematics Institute: J. Carlson A. Jaffe and A. Wiles., 2000.
Disponível em <http://www.claymath.org/millennium/> Acesso em: 16 maio 2008.
BOYER, Carl B. História da matemática. Tradução: Elza F. Gomide. São Paulo: Edgard Blucher Ltda., 1974. 488
p.
COUTINHO, S. C. Números inteiros e criptografia RSA. 2. ed. Rio de Janeiro: IMPA, 2001. 213 p.
COUTINHO, S. C. Primalidade em tempo polinomial: uma introdução ao algoritmo AKS. Rio de Janeiro:
Sociedade Brasileira de Matemática, 2004. 105 p.
DEVLIN, Keith. Os problemas do milênio. Tradução: Michelle Dysman. Rio de Janeiro: Record, 2004. 308 p.
EKERT, Artur; JOZSA, Richard. Quantum computation and Shor's factoring llgorithm. Reviews of modern
phisics, julho de 1996. Vols. 68, número 3. p. 733-753.
EUCLIDES. Elementos de geometria. Tradução: Frederico Commandino. São Paulo: Edições Cultura, 1944. Vol.
1. Adicionados e ilustrado por Roberto Simsom, professor de Matemática da Academia de Glasgow, Escócia..
EVES, Howard. Introdução à história da matemática. Tradução: Higyno H. Domingues. Campinas: Editora da
UNICAMP, 2004. 844 p.
GRANVILLE, Andrew. It is eeasy to determine whether a given integer. Bulletin (New Series) of the American
Mathematical Society, 2004. 1: Vol. 42. p. 3-38.
IFRAH, Georges. Os números: história de uma grande invenção. Tradução: Stella Maria de Freitas Senra. 2. ed. Rio
de Janeiro: Globo S.A., 1989. 368 p.
JOYCE, D. E. Euclide's elements. Ed. University Dept. Math. & Comp. Sci. Clark. 1997. Disponpivel em
<http://aleph0.clarku.edu/~djoyce/java/elements/elements.html> Acesso em: 6 abr. 2008.
KHUN, Thomas S. A estrutura das revoluções científicas. 3. ed. São Paulo: Perspectiva, 1982. 257 p.
LANDAU,
Edmund.
The
master
rigorist.
Princeton
University.
Disponível
em
<http://press.princeton.edu/books/maor/sidebar_h.pdf> Acesso em: 30 maio 2008.
LEGENDRE, A. M. (Adrien Marie). Essai sur la théorie des nombres. Paris: Duprat Paris [University of California
Libraries]. 1798. Primeira. Vol. 1. Disponível em <http://www.archive.org/details/essaitheorienomb00legerich>
Acesso em: 21 maio 2008.
O'CONNOR, e ROBERTSON, Edmund F. MacTutor history of matemátics archive. School of Mathematics and
Statistics
–
University
of
St
Andrews,
Scotland.
2008.
Disponível
em
<http://wwwhistory.mcs.stAndrews.ac.uk/Indexes/HistoryTopics.html> Acesso em: 7 abr. 2008.
POMERANCE, Carl. Recent developments in primality testing. The Mathematioal Intelligenaer, 1981. Vol. 3. p.
97-105.
RIBENBOIN, Paulo. Números primos: mistérios e recordes. Rio de Janeiro: IMPA, 2001. 280 p.
RIPOLL, Jaime Bruck; RIPOLL, Cydara Cavedon; da SILVEIRA, José Francisco Porto. Números racionais, reais
e complexos. Porto Alegre: Universidade Federal do RGS, 2006. 340 p.
SAUTOY, Marcus du. A música dos números primos: a história de um problema não resolvido na matemática.
Tradução: Diego Alfaro. Rio de Janeiro: Jorge Zahar Editora, 2007. 352 p.
SHOR, P. Algorithms for quantum computation: discrete algarithms and factoring. Anais da 35th Annual
Symposium on Foundations of Computer Science. Santa Fe, USA: IEEE Comput Soc. Press, 1994. p. 124-134.
José Aluizio Ferreira Lima ([email protected])
Curso de Matemática, Universidade Católica de Brasília
EPCT – QS 07 – Lote 01 – Águas Claras – Taguatinga – CEP.: 72966-700
29
Download

Primalidade - Universidade Católica de Brasília