Documente Academic
Documente Profesional
Documente Cultură
Primo
Os nmeros primos so aqueles que so divisveis apenas por 1 e por eles
mesmos. Os outros so chamados de nmeros compostos. Para testar se um
nmero primo, existem vrias opes. Alguns desses mtodos so
relativamente simples mas so inviveis para valores altos. Outros testes, que
so geralmente usados para nmeros maiores, so na verdade algoritmos
probabilsticos que podem, s vezes, dar a resposta errada. Veja abaixo como
testar um nmero para saber se ele primo ou composto.
1. 1
Considere n como o nmero a ser testado. No mtodo da diviso por
tentativa, voc divide o nmero dado por todos os seus divisores inteiros
possveis. Para valores maiores de n, como n = 101, invivel dividi-lo por
todos os inteiros menores que ele. Felizmente existem vrios truques para
diminuir o nmero de fatores que precisaro ser testados.
2. 2
A nica exceo para essa regra o prprio nmero 2, pois ele divisvel
apenas por 1 e por ele mesmo, e essa a definio dos nmeros primos. Logo,
2 primo.
3. 3
Divida o "n" por cada nmero entre 2 e n-1. Um nmero primo no tem
divisores a no ser ele mesmo e 1, logo, esses divisores inteiros so
necessariamente menores que os seus produtos, verificar todos os nmeros
menores que n e maiores que 2 vai determinar se o "n" primo. Comeamos
aps o 2 porque os nmeros pares (que so divisveis por 2) no so primos.
Esse est longe de ser o mtodo mais eficiente de fazer esse teste, mas, como
veremos abaixo, existem outras estratgias.
4. 4
Para ganhar tempo, teste apenas at sqrt(n), arredondando para
cima. Testar todos os nmeros entre 2 e n-1 pode demorar bastante. Por
exemplo, se fossemos verificar se o 103 primo usando esse mtodo,
5. 5
Para gastar ainda menos tempo, verifique apenas os fatores primos.
possvel tornar o processo de diviso por tentativa ainda mais rpido ao
eliminar os fatores que no forem nmeros primos. Por definio, todo nmero
composto pode ser expressado como o produto de dois ou mais primos. Por
isso, podemos diminuir ainda mais a nossa lista, verificando apenas os
divisores primos entre 2 e sqrt(n).
Isso significa que todos os fatores pares, que so mltiplos de nmeros primos,
podem ser omitidos.
Por exemplo, vamos tentar determinar se 103 primo ou no. A raiz quadrada
de 103 arredondada para cima 11. Os nmeros primos entre 2 e 11 so 3, 5
e 7 e 11. J os nmeros 4, 6, 8 e 10 so pares e o 9 um mltiplo de 3, que
um nmero primo, ento podemos omiti-los. Ao fazer isso, nos diminumos a
lista de fatores que precisam ser testados para apenas 4 nmeros!
1. 1
Considere n como o nmero a ser testado. Esse teste de primalidade
usado para determinar se um nmero dado primo. Entretanto, como dito
acima, o teorema s vezes identifica nmeros compostos como primos.
importante saber e estar preparado para verificar a resposta, veja abaixo.
2. 2
Escolha qualquer nmero no intervalo [2, n-1]. O nmero exato que voc
escolhe no importante, pois o intervalo inclu os nmeros 2 e n-1 como
escolhas vlidas.
Como exemplo, vamos tentar determinar se o 100 primo ou no. Vamos usar
o 3 como nosso valor, pois ele est entre 2 e n-1.
3. 3
Calcule an (mod n). O clculo dessa expresso requer um certo conhecimento
do sistema matemtico chamado de aritmtica modular. Nela, os nmeros
voltam para zero ao alcanarem um certo valor, chamado de mdulo. Pense
nisso como se fosse um relgio: uma hora depois da meia noite 1 da manh,
no 13 h, ou seja, o tempo voltou para o seu ponto inicial. O modo
especificado pela notao (mod n). Nesse passo, voc precisar calcular
'an(mod n).
Uma outra forma de fazer isso calculando n, dividir o resultado por n e usar o
resto da diviso. Calculadoras com a funo mdulo [2] podem ser muito teis
aqui, pois eles podem fazer esse clculo instantaneamente, mesmo quando os
nmeros forem grandes.
4. 4
Se voc for resolver mo, use a notao exponencial para facilitar. Se
voc no tiver acesso uma calculadora com a funo mdulo, use a notao
exponencial para facilitar o processo. Veja abaixo:
5. 5
Verifique se an (mod n) = a (mod n). Se no, n composto. Se sim, ento n
provavelmente, mas no com certeza, primo. Repetir o teste com valores
diferentes pode melhorar a confiabilidade resultado, apesar de existirem raros
nmeros compostos que satisfazem a condio de Fermat para todos os
valores de a. Eles so chamados de nmeros de Charmichael, o menor deles
561.
No nosso exemplo, 3100 (mod 100) = 1 e 100 (mod 100) = 0. Como 1 =/= 0,
podemos dizer que 100 composto.
6. 6
1. 1
Considere n" como um nmero mpar que voc deseja testar. Como nos
mtodos acima, a varivel n representar o nmero que queremos determinar
a primalidade.
2. 2
Expresse n-1 na forma 2s d onde d mpar. Para que n seja primo, ele
precisa ser mpar, ento n-1 deve ser par. Por esse motivo, n-1 pode ser
representado como uma potncia de 2 vezes um nmero primo: 4 = 2 2 1, 80
= 24 5, e assim por diante. Expresse dessa forma o valor n -1.
Supondo que queremos saber se n = 321 primo. 321 - 1 = 320, que podemos
expressar como 26 5.
Nesse caso, n = 321 conveniente. Se n fosse maior, como 371, por exemplo,
seria necessrio um valor maior de d, o que poderia complicar o processo
depois: 371 - 1 = 370 = 21 185
3. 3
Escolha um nmero aleatrio "a" entre 2 e n - . O nmero exato que voc
escolhe no, ele precisa apenas ser maior que 1 e menor que n.
4. 4
Calcule ad (mod n). Se ad = 1 ou -1 (mod n), ento n pasa no teste de MillerRabin e provavelmente primo. Assim como o Pequeno Teorema de Fermat,
esse teste no pode apontar nmeros primos com absoluta certeza se ele for
executado apenas uma vez.
5. 5
Se o resultado no for 1 ou -1, calcule a2d, a4d, ... e assim por diante
at a2s-1d. Calcule a elevado a d vezes potncias de 2 at 2s-1. Se um desses
nmeros for 1 or -1 (mod n), ento n passa no teste de Miller-Rabin e
provavelmente um nmero primo. Se voc descobrir que n no passou no
1002d = 10 = 1 1020.
1004d = 20 = 1 1040.
6. 6
Se n passar no teste de Miller-Rabin, repita o processo para outros
valores de a. Se voc descobrir que o seu valor de n primo, tente de novo
com um outro valor aleatrio para a para melhorar a confiabilidade do resultado
do teste. Se n realmente primo, ele vai passar no teste para qualquer outro
valor de a. Se n for composto, ele no vai passar em pelo menos trs quartos
dos valores de a. Isso d a esse mtodo uma confiabilidade maior que o
Pequeno Teorema de Fermat oferece, onde certos nmeros compostos (os
nmeros de Carmichael) podem passar para qualquer valor de a.
Dicas
Os 168 nmeros primos menores que 1000 so: 2, 3, 5, 7, 11, 13, 17, 19, 23,
29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109,
113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197,
199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283,
293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389,
397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487,
491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599,
601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691,
701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811,
821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919,
929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997
[5]