Como saber se um número é primo

4: Métodos

Use a divisão julgamentoUse o pequeno teorema de FermatUse o teste de Miller-RabinUse o teorema chinês do resto

Os números primos são aqueles que só podem dividir entre si e 1, os outros números são chamados compostos. Existem várias opções quando se trata de verificar se um determinado número é primo. Alguns destes métodos são relativamente simples, mas não são eficazes com taxas elevadas. Outro frequentemente utilizado para números elevados são realmente algoritmos probabilística que pode às vezes erroneamente determinar se um número é primo ou composto. Consulte a Etapa 1 abaixo para saber como testar a primalidade de um número.

método 1
Use a divisão julgamento

A divisão de julgamento é de longe a maneira mais simples para determinar o teste de primalidade. Para os pequenos números, demasiado frequentemente a evidência mais rápida disponível. Este método baseia-se na definição de um número primo: um número é primo, se tiver mais do que um e divisores si.

1
designa n como o número que você quer tentar. No método de divisão de teste para testar a primalidade, você deve dividir o dado n entre todos os fatores possíveis número inteiro. Para grandes valores de n, e n = 101, não é muito prático para dividir entre tudo inteiros menor que n. Felizmente, existem muitos truques para reduzir significativamente o número de fatores que você deve tentar.
  • 2
    determina se n É ainda. Todos os números pares são divisíveis por 2. Devido a isso, se n for mesmo pode assumir que n é composto e não prime. Para determinar rapidamente se um número é mesmo, basta prestar atenção para o último dígito. Se o último dígito é 2, 4, 6, 8 ou 0, o número é ainda e, portanto, não é primo.
  • A única excepção a esta regra é o número 2 é privilegiada, pois só é divisível por si e 1. 2 é o único número primo e par.
  • 3
    dividir n Entre todos os números localizados no intervalo de 2 a n-1. Porque o número primo não tem outros que 1 e em si fatores, e que os fatores principais são, necessariamente, reduzir a sua divisibilidade verificação products- de todos os números menores que n e maior que 2 determinar se n é primo. Começamos com os números após 2 porque até mesmo os números que são múltiplos de 2, não são primos. Este método é longe de ser o mais eficaz para este teste e, como será visto abaixo, há uma série de estratégias de simplificação.
  • Por exemplo, se usar esse método para testar se 11 é primo ou não, temos que dividir 11 por 3, 4, 5, 6, 7, 8, 9 e 10 de cada vez que um número inteiro buscam nenhuma outra resposta. Uma vez que nenhum destes números é dividida por 11, podemos dizer que é 11 primo.
  • 4
    Para economizar tempo, tente apenas para a raiz quadrada de n, arredondado. Tente o número N com todos os números entre 2 e N-1 pode rapidamente tornar-se um processo que requer muito tempo. Por exemplo, se você quiser ver se 103 é um número primo, desta forma, teríamos que dividir por 3, 4, 5, 6, 7, etc. Mesmo para chegar a 102! Felizmente, você não precisa testar todos os fatores possíveis. Na realidade, só que necessário factor de teste 2 para a raiz quadrada de n. Se a raiz quadrada de n não é um número inteiro, arredondar para o número inteiro mais próximo e em vez de tentar esse número. O exemplo a seguir irá explicar:
  • fatores 100. 100 = 1 × 100, 2 x 50, considere 4 × 25, 5 × 20, 10 × 10, 20 × 5, 25 × 4, 50 × 2, e 100 x 1. Note-se que depois de 10 x 10, os elementos são os mesmos que os acima de 10 × 10, unicamente invertida. Em geral, podemos ignorar os factores de n maior do que sua raiz quadrada, uma vez que estes são apenas fatores menores para a raiz quadrada de n reorganizada.
  • Considere este problema. Se n = 37, não há necessidade de testar todos os números de 3-36 para determinar se n é primo. Em vez disso, só temos de tentar os números de 2 a raiz quadrada de 37, arredondado.
  • A raiz quadrada de 37 é 6,08 para arredondar para cima a 7.
  • 37 não é divisível por 3, 4, 5, 6 e 7, para que possamos determinar com certeza que é primo .
  • 5
    Para economizar mais tempo, utilizando apenas números primos. É possível reduzir ainda mais o processo de divisão de teste, eliminando os fatores que as opções não são números primos. Por definição, cada número do composto pode ser expressa como o produto de dois números primos ou mais. Assim dividir o nosso número n entre um número composto é redundante, uma vez que é basicamente o mesmo que dividindo por números primos várias vezes. Portanto, podemos reduzir ainda mais a lista de possíveis fatores de apenas números primos menos do que a raiz quadrada de n.
  • Isso significa que todos os pares de fatores e todos os fatores que são múltiplos de números primos, podem ser ignorados.
  • Por exemplo, tentar determinar se 103 é primo ou não. A raiz quadrada de 103 é 11. números primos arredondados entre 2 e 11 são 3, 5, 7 e 11. Os números 4, 6, 8 e 10 pares, e 9 é um múltiplo de 3, um número primo, então podemos omitir o. Ao fazê-lo, nós encurtado nossa lista de possíveis fatores de apenas 4 números!
  • Nem 3, 5, 7 ou 11 são divisores de 103, por isso sabemos que 103 é primo.
  • método 2
    Use o pequeno teorema de Fermat

    Em 1640, o matemático francês Pierre de Fermat foi o primeiro a descrever o teorema que hoje leva seu nome, um muito útil ao decidir se um número é primo. Tecnicamente, o teste Fermat é utilizado para determinar se um número é composto mais do que se for primo porque pode determinar com certeza absoluta se um número é composto, mas só pode apontar se provável que um número é primo. pequeno teorema de Fermat é útil em situações em que a divisão de julgamento não é muito eficaz e quando estiver disponível uma lista de números que são exceções à teorema.

    1
    ser n o número de testes de primalidade. Primalidade Este teste é utilizado para determinar se um dado número de n é primo. No entanto, como mencionado acima, às vezes identifica erroneamente teorema alguns números compostos como prime. É importante saber disso e estar preparado para verificar sua resposta, como vamos aprender a seguir.
  • 2
    Escolha qualquer inteiro para 2 a n-1 (incluído). O inteiro exato que você escolher não é importante. Uma vez que os parâmetros são incluídos na mesma 2 e n-1 são opções válidas.
  • Como um exemplo prático, tente determinar se 100 ou não é um número primo. Vamos usar o 3 como nosso valor situa-se entre 2 e n-1 para que ele irá funcionar bem.
  • 3
    Calcula para (mod n.) Calcular esta expressão requeire algum conhecimento de um sistema matemático chamado aritmética modular. Em aritmética modular, os números "iniciar novamente" a partir do zero depois de ter atingido um certo valor, chamado módulo. Pense nisso como um relógio uma hora após o meio-dia é a horas 01:00 13, o tempo tem "re-start" a partir do seu ponto de partida. O módulo é especificada pela notação (mod n.) Portanto, neste passo, um módulo n calculado.
  • Outra maneira de considerá-lo é calculado, em seguida, dividir entre N e usar o resto de sua resposta. Isto pode ser muito útil calculadoras função especializada para encontrar o módulo porque eles podem calcular imediatamente o resto de uma divisão envolvendo números elevados.
  • Se usarmos esta calculadora para o nosso exemplo, podemos ver que 3/100 tem um resto de 1. Portanto, 3 (mod 100) é 1.


  • 4
    Se você resolvê-lo à mão, usando uma notação exponencial para abreviar. Se você não obter uma calculadora com funções para encontrar o módulo usa uma notação exponencial para facilitar o processo de determinar o resto. Confira abaixo:
  • No nosso exemplo, poderíamos calcular 3 com um módulo 100. 3 é uma figura muito, muito alto, 377 520 732 011 331 036 461 129 765 621 272 702 107 522 001, tão alto que é realmente difícil trabalhar com. Em vez de usar uma resposta de 48 dígitos 3, representémosla em notação exponencial como (((((((3) * 3)))) * 3)). Lembre-se de fazer o expoente de um expoente tem o efeito de multiplicar os expoentes ((x) = x).
  • Agora vamos determinar o resto. Começar por resolver (((((((3) * 3)))) * 3)) parênteses grupo de dentro para fora, dividir por 100 depois de cada passo. Depois de conseguir o resto, vamos usar para o próximo passo em vez da resposta atual. Veja abaixo:
  • (((((((9) * 3)))) * 3)) - 9/100 sem descanso, então vamos continuar.
  • ((((((27)))) * 3)) - 27/100 não descansa, por isso vamos continuar.
  • (((((729))) * 3)) - 729/100 = 7 R 29. O restante é 29. Portanto, nós aplicamos o próximo passo neste e não em 729.
  • ((((29 =841)) * 3)) - 841/100 = 8 R 41. Vamos usar o restante 41 de novo no passo seguinte.
  • (((41 = 1681) * 3)) - 1681/100 = 16 P 81. Vamos usar os restantes 81 no passo seguinte.
  • ((81 * 3 = 243)) - 243/100 = 2 R 43. Vamos usar os restantes 43 no passo seguinte.
  • (43 = 1849) - 1849/100 = 18 R 49. Usaremos os restantes 49 na próxima etapa.
  • 49 = 2401 - 2401/100 = 24 R 1. O último bit é 1. Em outras palavras, 3 (mod 100) = 1. Note-se que esta é a mesma resposta que tivemos com uma calculadora na etapa anterior!
  • 5
    verifica se para (mod n) = para (mod n.) Se não, o símbolo n representa compósito. Caso contrário, é provável, mas não definitiva que n é primo. Repita o teste com valores diferentes para um pode aumentar a sua confiança no resultado, embora existam números compostos raros que satisfazem a condição de Fermat para tudo para valores. Estes são chamados de números de Carmichael, o menor número é 561.
  • No nosso exemplo, 3 (mod 100) = 1 e 100 (mod 100) = 0. 1 = / = 0, então podemos dizer que é 100 composto.
  • 6
    Carmichael usa os números para ter certeza. Sabendo de antemão o que os números são Carmichael você pode evitar a dor de cabeça pela preocupação se o número é realmente primo ou não. Em geral, seguir os números forma Carmichael (6k + 1) (12k + 1) (18k + 1) para valores inteiros k quando cada um dos fatores é primo. listas Carmichael de números encontrados on-line pode ser muito útil quando se usa o pequeno teorema de Fermat para determinar a primalidade de um número.

  • método 3
    Use o teste de Miller-Rabin

    O teste de Miller-Rabin funciona muito como a forma como o pequeno teorema de Fermat, mas é mais eficiente com casos excepcionais, como os números de Carmichael.

    1
    ser n um inteiro ímpar que você quer tentar. Tal como nos métodos anteriores, n é a variável que representa o número cujo primality que determinar.
  • 2


    expressa n-1 na forma 2 × d onde d É estranho. Para que n é primo, que deve ser ímpar. Assim, n-1 deve ser mesmo. Uma vez que N-1 é ainda, pode ser representada como uma potência de 2 por um número ímpar - 4 = 2 × 1 = 2 x 80 5 e assim por diante. Manifesta N - 1 para o valor de n que.
  • Dizer que nós queremos saber se n = 321 é primo. 321-1 = 320, queremos expressar como 2 x 5.
  • Neste caso, n = 321 é um número conveniente. N - 1 para um número não tão ideal quanto n = 371, podem precisar de um valor mais elevado para a d, em seguida, que complica o processo. 371-1 = 370 = 2 × 185.
  • 3
    Escolha um número aleatório para 2 a n-1. O número exacto optar por não é importante, só que tem de ser inferior a n e maior do que 1.
  • No nosso exemplo n = 321, nós escolhemos a = 100.
  • 4
    Calcula para (mod n.) se para = 1 ou -1 (mod n), Seguida n passa o teste de Miller-Rabin e provavelmente Ele é primo. Como o pequeno teorema de Fermat, este teste não pode determinar com precisão a primeira vez que se um número é primo.
  • No nosso exemplo, n = 321, A (mod n) = 100 (mod 321). 100 = 10 000 000 000 (mod 321) = 313. Nós poderíamos usar uma calculadora ou atalho expoente especializado mencionado acima para encontrar o resto.
  • Nós já não temos 1 ou -1, não podemos determinar que n é primo. No entanto, ainda há muito a fazer (veja abaixo).
  • 5
    Se o resultado não é igual a 1 ou -1, calculado para, para, e assim por diante até parad. Calcula "para" ao poder de d por potências de 2 a 2. Se um deles é igual a 1 ou -1 (mod n), Seguida n Miller-Rabin passa o teste e é provavelmente primo. Se você achar que n falhar no teste, verificar a sua resposta (veja o passo abaixo). Se n não passa qualquer um dos testes, então é composto.
  • Como um lembrete, no nosso exemplo, o valor para um é de 100, para s é 6 e d é de 5 para continuar com o teste da seguinte forma:
  • 100 = 1 10 x.
  • 1 x 10 (mod 321) = 64. 64 = / = 1 ou -1. Nós continuamos.
  • 100 = 1 10 x.
  • 1 x 10 (mod 321) = 244. 244 = / = 1 ou -1.
  • Neste ponto, podemos parar. Temos 4d = 2 e não mais potências de 2 para d inferior a 5d. Porque nenhum de nossos cálculos nos deu 1 ou -1, temos a certeza de que n = 321 é composto.
  • 6
    se n Rabino Chefe Miller passa no teste, repita o processo com valores alternativos para. Se você achar que o valor de n pode ser um número primo, tente novamente com outro valor aleatório para um e ter maior certeza o resultado do teste. Se n é um número primo, que vai passar no teste com qualquer valor por um. Se n é composto, pelo menos, três quartos dos valores que optam por não passar no teste. Assim, há uma maior certeza de que o pequeno teorema de Fermat, em que certos números de compostos, isto é, números Carmichael, pode passar qualquer valor por um.
  • método 4
    Use o teorema chinês do resto

    1
    Escolha dois números. Um não deve ser números primos e a outra deve ser testado primality.
    • "Primo1" = 35
    • Primo2 = 97
  • 2
    Escolha dois pontos de dados que são maiores do que zero e menor para primo1 e primo2 respectivamente. Estes podem não ser os mesmos.
  • Data1 = 1
  • Data2 = 2
  • 3
    Calcule o inverso multiplicativo primo1 (IM) e primo2.
  • Calcular o multiplicativo inverso
  • IM1 = ^ -1 mod primo2 primo1
  • IM2 = ^ -1 mod primo1 primo2
  • Apenas para números primos (dar um número para os números não são primos, mas não o inverso multiplicativo).
  • IM1 = (primo2 ^ (primo1-2))% primo1
  • IM2 = (primo1 ^ (primo2-2))% primo2
  • exemplo
  • IM1 = (97 ^ 33) 35%
  • IM2 = (35 ^ 95) 97%
  • 4
    Criar uma tabela de conversão de binário para cada inverso multiplicativo para o módulo logaritmo2.
  • para IM1
  • F (1) = primo1 primo2% = 97% = 35 27
  • F (2) = F (1) * F (1) = 27 * primo1% 27% 35 = 29
  • F (4) = F (2) * F (2) = 29% primo1 * 29% 35 = 1
  • F (8) = F (4) F * (4) = 1 * primo1% 1% 35 = 1
  • F (16) = M (8) * F (8) = 1 * primo1% 1% 35 = 1
  • M (32) M = (16) * F (16) = 1 * primo1% 1% 35 = 1
  • Calcula o primo1 binário - 2
  • 35 -2 = 33 (10001) base 2
  • IM1 = F (33) = F (32) F * (1) mod 35
  • IM1 = F (33) = 1 * 27 35 mod
  • IM1 = 27
  • a IM2
  • F (1) = primo2 primo1% = 35% = 97 35
  • F (2) = F (1) * F (1) = 35% * 35 primo2 mod 97 = 61
  • F (4) = F (2) * F (2) = 61% * 61 primo2 mod 97 = 35
  • F (8) = F (4) F * (4) = 35% * 35 primo2 mod 97 = 61
  • F (16) = M (8) * F (8) = 61% * 61 primo2 mod 97 = 35
  • M (32) M = (16) * F (16) = 35% * 35 primo2 mod 97 = 61
  • M (64) M = (32) * F (32) = 61% * 61 primo2 mod 97 = 35
  • F (128) = F (64) F * (64) = 35% * 35 primo2 mod 97 = 61
  • Calcula o primo2 binário - 2
  • 97-2 = 95 = (1011111) de base 2
  • IM2 = (((((F (64) * F (16)% 97) * F (8)% 97) * F (4)% 97) * F (2)% 97) * F (1)% 97 )
  • IM2 = (((((35 * 35)% 97) * 61)% 97) * 35% 97) * 61% 97) * 35% 97)
  • IM2 = 61
  • 5
    Calcule (data1 * primo2 * data2 * IM1 + IM2 primo1 *)% (primo1 * primo2)
  • Resposta = (1 * 97 * 27 + 2 * 35 * 61)% (97 * 35)
  • Resposta = (2619 + 4270)% 3395
  • Resposta = 99
  • 6
    Verifique se "primo1" para que primo1
  • Calcule (resposta - data1)% primo1
  • 99 -1% 35 = 28
  • Como 28 é maior que 0, 35 não é primo
  • 7
    Verifique se primo2 é primo.
  • Calcule (resposta - data2)% primo2
  • 99-2% 97 = 0
  • Como 0 é igual a 0, é possível que 97 é excelente
  • 8
    Repetir os passos 1 a 7, pelo menos, duas vezes.
  • Se a etapa 7 dá-lhe 0:
  • Utilizar um número diferente de "primo1", onde primo1 é composto.
  • Usar um número diferente para primo1 onde isso é realmente nobre. Neste caso, aplicando a etapa 6 e 7, o resultado deve ser 0.
  • Use outros pontos de dados para dados1 e dados2.
  • Se, ao aplicar o passo 7 sempre obter 0, há uma grande possibilidade de que primo2 é primo.
  • Sabe-se que os passos 1 a 7 pode falhar em alguns casos, quando o primeiro número não for primo e o segundo factor é um número composto "primo1". Mas ele funciona com todos os outros casos em que ambos os números são primos.
  • A razão pela qual as etapas 1 a 7 são repetidos é porque há alguns casos em que, apesar primo1 e primo2 não são primos, passo 7 ainda é zero, um ou dois números. No entanto, estes casos são raros. Ao mudar para um número diferente primo1 não privilegiada, se primo2 não é primo, então rapidamente será determinado para a etapa 7 não irá resultar em 0. Exceto por exemplo, números primos será sempre zero na etapa 7.
  • dicas

    • 168 números primos menos de 1000 são: 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.
    • Embora o método de teste de divisão é mais lento do que o outro mais complexo para os valores elevados, os métodos é muito eficaz com um pequeno número. Mesmo para verificar o primality valores elevados são normalmente revisto fatores mais baixos primeiro antes de passar para métodos mais avançados, onde esses fatores não são encontrados.

    Coisas que você precisa

    • material de trabalho, tais como papel e lápis, ou um computador.
    Artigos Relacionados