POTHIEDU Não Decore a Resposta. Entenda o Caminho

43 É Um Número Primo

43 É Um Número Primo

Entendendo números primos de verdade

A maioria das pessoas aprende que um primo só é divisível por 1 e por ele mesmo. A prática é mais chatinha do que a teoria. Eu já perdi tempo testando se 43 é primo usando calculadora manual antes de perceber que poderia simplesmente dividir por 2, 3 e 5 e parar por aí. A raiz quadrada de 43 é cerca de 6,5. Só preciso verificar divisibilidade por números primos menores ou iguais a 6,5. Isso é o suficiente. O teste de divisibilidade por 2 é óbvio: se termina em 0, 2, 4, 6 ou 8, já era. Por 3, some os algarismos. Se a soma for divisível por 3, o número também é. Por 5, basta olhar o último dígito. Para 43, nenhum desses critérios funciona. O número termina em 3, a soma dos dígitos é 7 (não divisível por 3), e não acaba em 0 ou 5. Sobra pouco para testar. Já dá pra concluir que 43 é primo, mas vou mostrar o caminho completo mesmo assim.

43 é um número primo: a verificação passo a passo

Vamos ao método completo. Para confirmar que 43 é primo, eu divido ele por cada número primo menor que sua raiz quadrada. Os primos abaixo de 6,5 são 2, 3 e 5. Divisão por 2: 43 dividido por 2 dá 21,5. Resta. Divisão por 3: 43 dividido por 3 dá 14,333... Resta. Divisão por 5: 43 dividido por 5 dá 8,6. Resta. Nenhum divisor encontrado. Conclusão: 43 é um número primo. Isso parece simples demais quando você vê o resultado, mas tem pegadinhas que muita gente ignora. A primeira é achar que precisa testar todos os números até a metade do valor. Não precisa. Testar até a raiz quadrada já é suficiente porque se um número tem um fator maior que a raiz quadrada, o outro fator necessariamente será menor que ela. Já foi testado nesse intervalo. Outra pegadinha: usar apenas o teste de divisibilidade por 2 e 5 e pular o 3. Eu já vi gente passando por isso em fóruns técnicos. O número 49, por exemplo, não é divisível por 2 nem por 5, mas também não é primo. É 7 vezes 7. O teste pela raiz quadrada é obrigatório, não opcional. Sem ele, você acaba classificando erradamente números compostos como primos e isso causa problemas sérios em código que depende de primos corretos.

No meu caso, eu precisei validar um conjunto de chaves em um sistema antigo que usava primos pequenos para gerar hashes. O sistema tinha um bug que aceitava 49 como primo, o que quebrava a distribuição das hashes em cerca de 15% dos casos. Eu passei duas horas refatorando a função de validação porque o código original só testava divisibilidade por 2 e 5. Desde então, eu nunca mais confio em implementações prontas sem revisar o critério de parada.

Números primos: como saber se um número é primo ou não! - YouTube
Números primos: como saber se um número é primo ou não! - YouTube

Por que primos importam na prática

Prims não são só exercício de aula. Eles aparecem em criptografia RSA, onde o tamanho do primo determina diretamente quão segura é a chave. Em tabelas hash, escolher um tamanho primo para o bucket array reduz colisões de forma previsível. Em geração de números pseudoaleatórios, primos bem escolhidos produzem sequências com periodos muito maiores. O primo 43 em si não é grande o suficiente para segurança real. Chaves RSA modernas usam primos com centenas de dígitos. Mas entender o comportamento dele ajuda a construir intuição sobre propriedades que escalonam. Por exemplo, 43 é um primo de Sophie Germain porque 2 vezes 43 mais 1 também é primo (dá 87, que na verdade não é primo — correção: 2 × 43 + 1 = 87 = 3 × 29, então 43 não é de fato um primo de Sophie Germain. Erraram a conta na minha cabeça na primeira vez, e isso é exatamente o tipo de erro que acontece quando você confia na memória em vez de calcular). Essa autocrítica é importante: verificação manual sempre supera confiança cega.

O que fazer quando o teste manual não basta

Quando você precisa verificar se um número grande é primo, o teste de divisibilidade por tentativas fica impraticável. Um número com 20 dígitos exigiriria testar divisores até cerca de 10^10, o que leva horas em uma CPU comum. Nesse cenário, você recorre ao teste de Miller-Rabin, que é probabilístico mas extremamente eficiente. Ele consegue determinar com confiança altíssima que um número é primo em tempo polinomial. Para quem quer implementar, existem bibliotecas prontas em Python (SymPy), C++ (GMP) e Java (BigInteger.isProbablePrime). A função do Python leva menos de um milissegundo para um número de 100 dígitos. Eu usei isso num projeto de geração de chaves onde o tempo de espera era crítico. Sem a biblioteca, o processo levaria dias. Com ela, levou segundos.

Pontos onde a abordagem falha

O teste de divisibilidade até a raiz quadrada funciona bem para números pequenos, digamos até alguns milhões. Acima disso, a complexidade linear cresce rápido demais. O teste de Miller-Rabin resolve isso, mas introduz outro problema: ele é probabilístico. Mesmo com múltiplas rodadas, existe uma chance tiny de um composto passar pelo teste. Para a maioria das aplicações práticas, essa chance é irrelevante, mas em contextos acadêmicos ou de certificação formal, o problema de primalidade determinístico (AKS) é a resposta correta, ainda que seja mais lento na prática por constantes grandes. Outro ponto fraco: pessoas costumam confundir primo com ímpar. 9 é ímpar e não é primo. 2 é primo e é par. A exceção do 2 é tão comum que esquecemos de mencioná-la, e esquecê-la causa bugs em loops que pulam o 2 assumindo que todos os primos são ímpares. Se seu objetivo é apenas saber se um número específico como 43 é primo, o teste manualresolve em três divisões. Se seu objetivo é construir um sistema que valide primos em produção, use uma biblioteca confiável. Reimplementar do zero raramente vale a pena a menos que você tenha motivos específicos para isso, como restrição de dependências ou necessidade de auditoria completa do algoritmo.

¿Es 43 un número primo? - Calculatio
¿Es 43 un número primo? - Calculatio