Teste de primalidade de Fermat

Pierre de Fermat

O Teorema de Fermat, que originou o Teste de primalidade de Fermat, oferece um teste simples e eficiente para ignorar números não-primos. Qualquer número que falhe o teste não é primo.

Teorema

Retrato de Pierre de Fermat

(Assuma-se mdc ( a , b ) {\displaystyle \operatorname {mdc} (a,b)} como o Máximo divisor comum entre a {\displaystyle a} e b {\displaystyle b} ).

Se m {\displaystyle m} é primo, então para qualquer a {\displaystyle a} tal que mdc ( a , m ) = 1 {\displaystyle \operatorname {mdc} (a,m)=1} , temos:

a m 1 1 ( mod m ) {\displaystyle a^{m-1}\equiv 1{\pmod {m}}}

Se m {\displaystyle m} não é primo, ainda é possível (embora pouco provável) que o supradito se verifique.

Se m {\displaystyle m} é ímpar composto, e a {\displaystyle a} um inteiro tal que mdc ( a , m ) = 1 {\displaystyle \operatorname {mdc} (a,m)=1} e

a m 1 1 ( mod m ) {\displaystyle a^{m-1}\equiv 1{\pmod {m}}}

diz-se que m {\displaystyle m} é pseudoprimo para a base a {\displaystyle a} , i.e., é um número não primo que passa o teste de Fermat.

Prova do teorema

Seja mdc ( a , m ) = 1 {\displaystyle \operatorname {mdc} (a,m)=1} ,

consideramos os conjuntos { 1 , 2 , 3 , , m 1 } {\displaystyle \{1,2,3,\ldots ,m-1\}} e { a , 2 a , 3 a , , ( m 1 ) a } {\displaystyle \{a,2a,3a,\ldots ,(m-1)a\}}

e percebemos que { a , 2 a , 3 a , , ( m 1 ) a } 0 ( mod m ) {\displaystyle \{a,2a,3a,\ldots ,(m-1)a\}\not \equiv 0{\pmod {m}}} .

Seja i , j { 1 , 2 , 3 , , m 1 } {\displaystyle i,j\in \{1,2,3,\ldots ,m-1\}} e i a j a ( mod m ) {\displaystyle ia\equiv ja{\pmod {m}}}

vemos que i j ( mod m ) {\displaystyle i\equiv j{\pmod {m}}}

porque mdc ( a , m ) = 1 {\displaystyle \operatorname {mdc} (a,m)=1} ,

com isso i = j {\displaystyle i=j}

porque 0 | i j | < m {\displaystyle 0\leq |i-j|<m} ,

então os números { a , 2 a , 3 a , , ( m 1 ) a } 0 ( mod m ) {\displaystyle \{a,2a,3a,\ldots ,(m-1)a\}\not \equiv 0{\pmod {m}}}
são incongruentes entre si ( mod m ) {\displaystyle {\pmod {m}}} .

Então { a , 2 a , 3 a , , ( m 1 ) a } {\displaystyle \{a,2a,3a,\ldots ,(m-1)a\}} são congruentes, em alguma ordem, com os números 1 , 2 , 3 , , m 1 {\displaystyle 1,2,3,\ldots ,m-1} .

Conclui-se que:

( m 1 ) ! = 1 2 3 4 ( m 1 ) a 2 a 3 a 4 a ( m 1 ) a ( m 1 ) ! a m 1 ( m 1 ) ! ( mod m ) {\displaystyle (m-1)!=1\cdot 2\cdot 3\cdot 4\cdots (m-1)\equiv a\cdot 2a\cdot 3a\cdot 4a\cdots (m-1)a\implies (m-1)!\equiv a^{m-1}\cdot (m-1)!{\pmod {m}}}

Se tivermos

mdc ( m , ( m 1 ) ! ) = 1 {\displaystyle \operatorname {mdc} (m,(m-1)!)=1} , ou seja, m {\displaystyle m} é primo, podemos cancelar o fator ( m 1 ) ! {\displaystyle (m-1)!} , e obtemos:
a m 1 1 ( mod m ) {\displaystyle a^{m-1}\equiv 1{\pmod {m}}} , m {\displaystyle \forall m\in } aos inteiros
o que conclui a prova.

Contrapartidas

Infelizmente existem números que passam o teste de Fermat para todas as bases para as quais são relativamente primos – são os chamados números de Carmichael, e são infinitos. Como tal, pode-se fazer o Teste de pseudoprimalidade forte:

  • Dado m {\displaystyle m}
  • Escreve-se m 1 = 2 8 t {\displaystyle m-1=2^{8}t\,\!} , em que t {\displaystyle t} é ímpar
  • Escolher aleatoriamente a [ 1 , m [ {\displaystyle a\in [1,m[}
  • Calcular h a t ( mod m ) {\displaystyle h\equiv a^{t}{\pmod {m}}\,\!}
  • Se h = ± 1 {\displaystyle h=\pm 1} , então m {\displaystyle m} passa
  • Calcular h i = a ( 2 i ) t {\displaystyle h^{i}=a^{(2^{i})t}} para i = 1 , 2 , . . . , 8 {\displaystyle i=1,2,...,8}
  • Se h i = 1 {\displaystyle h^{i}=-1\,\!} para algum i < 8 {\displaystyle i<8} , então m {\displaystyle m} passa
  • Caso contrário m {\displaystyle m} falha.

O teste deve ser repetido para r {\displaystyle r} bases diferentes. A probabilidade de um número composto m {\displaystyle m} passar r {\displaystyle r} testes é de 1 em 4r. Se m {\displaystyle m} passar o teste para 100 bases diferentes, então a probabilidade de m {\displaystyle m} ser composto é menor que 10−60.

Um teste elementar e preciso de primalidade

Sabe-se que, com exceção dos números 2 {\displaystyle 2} e 3 {\displaystyle 3} , todos os outros números primos são expresso pela fórmula I p = 6 K ± 1 {\displaystyle I_{p}=6K\pm 1} . Mas sabe-se que a imensa maioria dos números expresso pela fórmula I p = 6 K ± 1 {\displaystyle I_{p}=6K\pm 1} não são números primos.

Os números compostos da forma I = 6 K ± 1 {\displaystyle I=6K\pm 1} são obtidos pela multiplicação de dois números da forma I = 6 K ± 1 {\displaystyle I=6K\pm 1} onde estes dois números podem ser ambos primos ou ambos compostos e também pode ser o produto de um número primo por um número composto como vemos abaixo

6 K ± 1 = ( 6 K 2 ± 1 ) ( 6 K 3 ± 1 ) = 6.6 K 2 . K 3 ± 6 K 2 .1 ± 6 K 3 .1 ± 1 {\displaystyle 6K\pm 1=(6K_{2}\pm 1)(6K_{3}\pm 1)=6.6K_{2}.K_{3}\pm 6K_{2}.1\pm 6K_{3}.1\pm 1} que podemos escrever

6 K ± 1 = 6 ( 6 K 2 K 3 ± K 2 ± K 3 ) ± 1 {\displaystyle 6K\pm 1=6(6K_{2}K_{3}\pm K_{2}\pm K_{3})\pm 1}

Vemos então que esta igualdade só existe se

K = 6 K 2 K 3 ± K 2 ± K 3 {\displaystyle K=6K_{2}K_{3}\pm K_{2}\pm K_{3}}

Se esta igualdade não existir para sinais iguais ou diferentes, então o par de números 6 K ± 1 {\displaystyle 6K\pm 1} não existe como números compostos, logo o par de números 6 K ± 1 {\displaystyle 6K\pm 1} serão números primos gêmeos.

Então: dado um número inteiro positivo qualquer K {\displaystyle K} , se não ocorrer nenhum par de números inteiros positivos K 2 , K 3 {\displaystyle K_{2},K_{3}} que satisfaça a igualdade acima, afirma-se que os números I p = 6 K ± 1 {\displaystyle I_{p}=6K\pm 1} são números primos gêmeos.

Se não ocorrer nenhum par K 2 , K 3 {\displaystyle K_{2},K_{3}} com sinais iguais e ocorrer ao menos um par K 2 , K 3 {\displaystyle K_{2},K_{3}} com sinais diferentes que satisfaça a equação, afirma-se que I p = 6 K + 1 {\displaystyle I_{p}=6K+1} é primo e I = 6 K 1 {\displaystyle I=6K-1} não é primo.

Se não ocorrer nenhum par K 2 , K 3 {\displaystyle K_{2},K_{3}} com sinais diferentes e ocorrer ao menos um par K 2 , K 3 {\displaystyle K_{2},K_{3}} com sinais iguais que satisfaça a equação, afirma-se que I p = 6 K 1 {\displaystyle I_{p}=6K-1} é primo e I = 6 K + 1 {\displaystyle I=6K+1} não é primo.

Ver também

  • Portal da matemática
  • Portal das tecnologias de informação