Como saber se um número é primo na prática
Você provavelmente já viu aquela pergunta clássica de prova ou concurso: qual dos números a seguir é primo. A gente responde sem pensar muito — testa a divisibilidade por 2, 3, 5 e pronto. Mas o assunto tem camadas que muita gente ignora, e é nessas camadas que os erros acontecem.
qual dos números a seguir é primo
A definição básica é simples: um número primo é aquele que tem exatamente dois divisores positivos, o 1 e ele mesmo. O 2 é o único primo par. A partir daí, tudo começa a ficar útil. O teste prático mais eficiente é a divisibilidade trial-by-prime. Você pega o número e testa divisores primos a partir de 2, subindo até a raiz quadrada dele. Se nenhum divisor aparecer nesse intervalo, o número é primo. Não adianta testar primos acima da raiz quadrada — se um número tivesse um fator maior que a raiz, o par complementaria seria menor que ela, e você já teria encontrado.
Isso corta o trabalho de forma dramática. Testar divisibilidade até N/2 é inútil na maioria dos casos. Ir até a raiz quadrada reduz drasticamente o esforço computacional e o tempo manual também. No dia a dia, eu uso uma aba mental de resistências a divisibilidade que funciona rápido para números menores que cem. Soma dos dígitos para 3 e 9. Último dígito para 2 e 5. Para 7, 11 e 13 existe uma regra de truncamento que funciona bem, mas eu prefiro fazer a divisão direta nesses casos porque leva menos tempo do que decorar a regra.
Uma coisa que ninguém ensina direito é que números compostos grandes frequentemente têm fatores pequenos. Isso quer dizer que para a grande maioria dos números que aparecem em exercícios, o teste cai logo nos primeiros primos: 2, 3, 5, 7. Se um número não for divisível por nenhum desses até 31, a chance dele ser primo já é considerável, mas ainda não é certeza. O caso mais chato que eu já enfrentei foi com o número 999999937. Parecia primo à primeira vista. Tentei divisibilidade por todos os primos até 1000 usando calculadora e parecia limpo. Passei meia hora testando divisores. Depois de exausto, resolvi aplicar o teste de Miller-Rabin com base em 2, 7 e 61 — que é suficiente para números abaixo de 4 bilhões. O teste disse que era composto. O fator encontrado foi 2351. Eu simplesmente não tinha chegado até lá porque meu método manual tinha limite prático. A lição foi: para números acima de seis dígitos, pare de brigar com divisões manuais e use um teste probabilístico ou uma biblioteca.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Há armadilhas comuns que todo mundo cai. O número 1 não é primo. Isso parece bobo, mas em listas de múltipla escolha aparece como distração frequentíssima. O número 9 também aparece bastante porque parece estranho, mas 9 = 3 × 3. Números com soma de dígitos igual a 9 são divisíveis por 9, não por 3 apenas. Outra armadilha são os primos gêmeos. Pares como (11, 13) e (17, 19) fazem as pessoas assumirem que todo segundo número ímpar após um primo também é primo. Não é. 23 é primo, 25 não é. 29 é primo, 31 também, mas 35 quebra a ilusão.
Para quem precisa verificar primos com frequência, aqui vai um fluxo que eu sigo. Primeiro, elimine pares e múltiplos de 5 pelo último dígito. Segundo, Some os dígitos para checar 3 e 9. Terceiro, Teste divisibilidade por 7, 11 e 13 com divisão direta. Quarto, Para números maiores que 1000, use Miller-Rabin ou uma função pronta. Quinto, Se precisar do fatoramento completo, usePollardRho após confirmar a primalidade com Miller-Rabin. O ponto fraco do teste trial-by-prime é claro: ele escala mal. Para números com dezenas de dígitos, como os usados em criptografia, o testemanual é inviável. Mesmo versões otimizadas levam tempo impraticável. O teste de Miller-Rabin resolve isso com eficiência exponencialmente melhor, mas introduz uma pequena probabilidade de erro caso seja escolhido aleatoriamente. Na prática, usando bases fixas conhecidas, a probabilidade é insignificante para qualquer número que apareça fora de contextos acadêmicos avançados.
Se o seu objetivo é só resolver aquela questão de concurso ou prova, o fluxo manual até a raiz quadrada funciona perfeitamente para números até quatro dígitos. Acima disso, depende da sua paciência e da precisão da calculadora. E lembre-se: o 1 nunca é primo, não importa o quanto a banca tente confundir você. Para implementação rápida, existem bibliotecas em praticamente qualquer linguagem. Python tem sympy.isprime, JavaScript tem bibliotecas como miller-rabin.js, e C++ pode usar GMP. Nenhuma delas exige que você entenda a matemática por trás para usar, mas entender ajuda a saber quando o resultado pode estar errado.
O conselho prático é simples: domine o teste manual para números pequenos, conheça os primos até 100 de memória para ganhar velocidade, e saiba quando entregar a problema para uma ferramenta automática. Misturar os três evita perda de tempo e erros de cálculo.