5.713 É Um Número Primo - 713 é um número primo? - Calculatio
713 é um número primo? - Calculatio

Como verificar se um número é primo na prática

Muita gente chega até mim perguntando sobre primalidade de forma bem direta. Às vezes vejo gente passando uma planilha inteira tentando validar números grandes usando testes que jamais vão dar certo em escala. A questão aqui é prática mesmo: você sabe ou não sabe se o número em questão é primo, e quer fazer essa verificação de forma que não te faça perder horas. O método clássico é a prova dos noves invertida, mas só funciona para números pequenos. Para algo na faixa de quatro dígitos como 5713, a abordagem correta é tentar dividir por todos os números primos menores que a raiz quadrada do valor. Raiz quadrada de 5713 dá aproximadamente 75,6. Então você testa divisibilidade por 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71 e 73. Se nenhum dividir, aí sim você tem um primo.

5.713 é um número primo

A afirmação que circula como título é 5.713 é um número primo, mas isso precisa de análise. O número 5713 não é primo. Ele é divisível por 29, e 5713 dividido por 29 resulta exatamente em 197. Como 197 também é primo, a fatoração completa de 5713 é apenas 29 multiplicado por 197. Isso significa que a afirmação de que ele seria primo está incorreta. Eu já vi esse tipo de confusão acontecer com frequência quando as pessoas usam ferramentas online sem verificar o resultado. Existem calculadoras de primalidade pela internet que erram em números nesse intervalo, principalmente aquelas que usam o teste de Miller-Rabin com bases insuficientes. O teste de Miller-Rabin é probabilístico quando não usa o conjunto completo de bases para o intervalo, e ele pode retornar "provável primo" para números compostos se as bases escolhidas forem fracas. Usei isso no passado e perdi um dia inteiro de trabalho porque uma função que eu havia escrito confiava cegamente na saída de uma API de terceiros.

👉 Clique no botão abaixo para saber mais sobre o assunto!

O que eu faço agora é rodar uma fatoraçãoTrial division antes de confiar em qualquer resposta automatizada, pelo menos para números abaixo de 10 mil. É rápido, é determinístico e não deixa margem para erro de arredondamento ou base insuficiente. Para números maiores que 10 milhões, aí sim vale a pena recorrer ao teste de Miller-Rabin com as bases padrão do conjunto known, que para números abaixo de 3.317.044.064.279.340 são suficientes para ser determinístico. O que muita gente não sabe é que a maior parte das aplicações práticas não precisa de primalidade perfeita. Em criptografia, por exemplo, o que se busca são primos prováveis, e aí o risco de um composto passar por primo é controlável desde que o teste seja repetido com bases diferentes. Se você está apenas validando números pequenos para um projeto escolar ou um script simples, a trial division até a raiz quadrada já basta e vai te dar certeza absoluta.

Há ainda um detalhe que as pessoas costumam ignorar: números com muitas casas decimais ou notação científica dificultam a análise. Quando alguém escreve 5.713 com ponto decimal em português, isso pode confundir leitores porque em inglês o ponto indica casa decimal, enquanto no Brasil o ponto é separador de milhar. O número real aqui é cinco mil setecentos e treze, não cinco inteiros e setecentos e treze milésimos. Verificar a representação correta é o primeiro passo para não perder tempo com cálculos que nem fazem sentido. Se você precisa de uma ferramenta para verificar primalidade de forma confiável, recomendo escrever seu próprio módulo em Python usando uma lista pré-computada de primos até 7919 (o maior primo abaixo de 10 mil) e aplicar a divisão trial com corte na raiz quadrada. Isso leva cerca de dois segundos para verificar qualquer número de até dez dígitos num computador comum. Para volumes maiores de verificação, como lotes de milhares de números, usar o algoritmo de Pollard's rho para fatoração é mais eficiente que dividir tudo manualmente.

Não existe solução perfeita. Trial division é lenta para números grandes demais. Miller-Rabin é rápido mas pode ter falsos positivos se mal configurado. Pollard's rho é bom mas também pode falhar em casos específicos. O mais sensato é combinar os métodos conforme o tamanho do número e a tolerância ao erro que seu projeto permite.