31 É Um Número Primo
Por que alguém se importaria com o 31
31 é um número primo porque só é divisível por 1 e por ele mesmo. Se tentar dividir por qualquer outro número inteiro, sobra resto. Teste rápido: 31 dividido por 2 dá 15,5; por 3, sobra 1; por 5, sobra 1; por 7, sobra 3. Nenhum divisor inteiro funciona além dos dois aceitos. Isso é tudo que a definição exige. A afirmação em si não carrega mistério nenhum. O que importa na prática é entender onde esse fato aparece e por que ele gera confusão. Não é sobre decorar propriedades, é sobre saber quando o número 31 se comporta como primo e quando isso vira um problema de verdade. Achamos que isso é trivial até encontrar um caso em que uma rotina assumiu algo errado sobre o 31 e o sistema começou a falhar de maneira específica. Foi num job de batch que processava lotes de 31 itens por vez. A lógica de arredondamento estava truncando o cálculo do número de lotes, e em vez de receber 4 lotes completos e um residual, o código gerava um lote incompleto mal formatado. A correção foi usar ceil(dividendo, denominador) ao invés de truncar para int, mas o ponto é que a propriedade primorial do 31 nem sempre é o assunto central; o problema é como você lida com divisões que ele impõe.
O teste prático que eu uso, não o que os livros ensinam
Para confirmar que 31 é um número primo na vida real, eu não testo contra todos os números. Testo até a raiz quadrada dele, que é cerca de 5,56. Então verifico apenas divisores primos menores ou iguais a esse limite: 2, 3 e 5. Se nenhum desses dividir 31 com resto zero, o número é primo. É um método fechado e rápido, útil quando você precisa validar vários candidatos sem depender de tabela pronta. O erro comum é testar divisores compostos também, o que gasta tempo sem adicionar informação. Outro erro é parar em 7 ou 11 achando que precisa “ir mais longe”. Não precisa. Para 31, o limite da raiz já fecha a prova. Qualquer testagem posterior é redundância, não rigor.
Onde a primalidade do 31 aparece de forma útil
Números primos como 31 são usados em funções de hash quando você quer reduzir colisão em tabelas de tamanho dinâmico. A escolha de um primo como módulo faz com que entradas similares se distribuam melhor, especialmente em sistemas pequenos ou embarcados. Também aparece em seeds para geradores de números pseudoaleatórios, porque primos tendem a produzir sequências com períodos maiores quando combinados com certas constantes. Um detalhe que poucos lembram: 31 é primo, mas 31 vezes algo nem sempre é o melhor modulus. Se sua tabela tem 256 posições, usar 31 como passo de hash pode criar padrões cíclicos previsíveis em dados estruturados. Nesse caso, prefira um primo maior, como 97 ou 131, dependendo do intervalo. O 31 funciona bem para ranges pequenos, mas não é uma regra universal.

Erros que eu vejo todo dia
Pessoa acha que porque 31 termina em 1 ele é divisível por algo óbvio. Não é. Terminar em 1 não implica divisibilidade por 3, 7, 9 ou qualquer outro. Outra confusão frequente é misturar primo com número odd. Todo primo exceto o 2 é ímpar, mas nem todo ímpar é primo. O 31 é ambos, mas a categoria não se sobrepõe automaticamente. Também vejo gente aplicar teste de primalidade em variáveis que já foram modificadas pelo fluxo do programa. O valor que chega no final pode não ser mais 31. Confirmação deve ser feita no momento exato da validação, antes de qualquer transformação. Se seu código altera o número antes do teste, o resultado perde sentido.
Quando usar 31 e quando fugir dele
Use 31 como constante de hash quando o domínio de entrada é moderado e você quer algo simples, rápido e sem dependência de biblioteca pesada. Fuja dele quando o volume de dados cresce a ponto de colisão se tornar crítica. Nesse cenário, migre para funções como xxHash ou MurmurHash3, que são projetadas para distribuir melhor em grandes tabelas e não dependem de um único primo fixo. Se precisar de criptografia, esqueça o 31. Primos pequenos como esse não servem para segurança. Você precisa de primos grandes, preferencialmente em aritmética modular com módulos de centenas de bits. O 31 é útil para, não para cifra.
Um example prático
Vou mostrar um trecho simples em Python para confirmar que 31 é um número primo usando o teste até a raiz: def eh_primo(n):
if n < 2:
return False
for i in range(2, int(n0.5) + 1):
if n % i == 0:
return False
return True eh_primo(31) retorna True. O loop percorre apenas 2, 3, 4 e 5. Nenhum divide 31, então a função encerra confirmando a primalidade. Isso é tudo. Sem ritual, sem mágica.

Limitações reais
O teste acima é válido para 31 e para números parecidos. Ele não escala bem para números com milhares de dígitos. Nesses casos, use Miller-Rabin ou testes probabilísticos apropriados. E mesmo assim, para 31, a complexidade desse teste é insignificante; o ganho real está na clareza da lógica, não na velocidade. Outro limite prático: confiar apenas na propriedade de primalidade sem considerar o contexto da aplicação. O 31 é primo. Isso não resolve problemas de desempenho, colisão ou segurança por si só. Ele é uma ferramenta dentro de um sistema maior, não uma solução autossuficiente.
Galeria
-
O Teorema do Número Primo: Um Guia Completo. -
Numero Primo In Enciclopedia Della Matematica – KYPB -
Quais são os Números Primos de 1 a 100? Saiba como Encontrá-los! – Exempl