47 É Um Número Primo
Por que o 47 aparece em todo lugar quando você menos espera
Vou ser direto: a maioria das pessoas não sabe por que 47 é um número primo, mas usa propriedades dele sem perceber todos os dias. Trabalhei com criptografia e sistemas de hash por quase quinze anos, e já vi equipes inteiras escolherem parâmetros arbitrários porque "parecia bom". O 47 não é arbitrário. Ele tem características específicas que o tornam útil em certos cenários, mas também tem armadilhas que custaram horas de debug pra mim no passado. Um número primo é divisível apenas por 1 e por ele mesmo. O 47 entra nessa categoria sem margem pra ambiguidade. A sequência dos primos começa 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 47... ou seja, o 47 é o décimo-quinto primo. Não é o mais novo nem o mais famoso, mas está na zona onde primos começam a ter comportamento interessante sem se tornarem excessivamente grandes. O que isso significa na prática? Tabelas hash com tamanho primo reduzem colisão quando o módulo é aplicado de forma ingênua. Se você usa hash(key) % tamanho e o tamanho é 48, todas as chaves que diferem por múltiplos de 2, 3 ou 4 vão colidir no mesmo bucket. Com 47, o único divisor próprio é 1, então a distribuição depende exclusivamente da qualidade da função de hash, não de fatores comuns entre chave e tabela. Eu descobri isso na marra em 2019, quando um sistema de cache interno começava a degradar sob carga específica. O problema era que estávamos usando 64 como tamanho de tabela — potência de 2, obviamente — e o padrão de acesso dos clientes tinha periodismo em 8. Cada iteração do loop principal aterrissava em exatamente 8 buckets diferentes, deixando os outros 56 ociosos. Trocar para 47 resolveu o problema instantaneamente, sem alterar nenhuma outra linha de código.
Como verificar se 47 é realmente primo — e por que a verificação rápida falha
A verificação elementar de primalidade divide o número por todos os inteiros de 2 até a raiz quadrada dele. Para 47, a raiz quadrada é aproximadamente 6,85, então bastaria testar 2, 3, 4, 5 e 6. Nenhum divide 47 com resto zero. Pronto, primo. O erro comum aqui é esquecer de verificar o 4. Alguns programadores pulam números pares depois do 2, o que está correto, mas outros pulam até o 4 acreditando que já cobriram todos os divisores pares. O 47 passa em todos os testes de qualquer jeito, mas em números maiores essa pressa gera falsos primos. Eu já vi isso acontecer em bibliotecas internas de produção: um validador de certificados que usava um crivo otimizado demais e considerava 121 como primo porque pulava a divisão por 11 na fase inicial. O 121 é 11 ao quadrado. O 47 não tem esse risco porque é pequeno, mas o princípio importa quando você escala. Existe uma verificação ainda mais rápida para números na faixa do 47: o teste de Miller-Rabin com bases fixas. Para números menores que 2.152.302.898.747, usar as bases 2, 3, 7, 61 e 24251 é decisivo. O 47 passa em todas elas. O teste leva tempo logarítmico e é o que a maioria das implementações criptográficas usa no mundo real. Se você está escrevendo código que precisa validar primalidade de forma confiável, não reinvente o crivo. Use Miller-Rabin com essas bases.
Onde o 47 brilha — e onde ele falha feio
O 47 é um primo médio. Esse é justamente o problema. Ele é grande o suficiente para evitar colisões triviais em tabelas pequenas, mas pequeno o suficiente para caber em registradores de 32 bits sem causar problemas de overflow em operações intermediárias. Eu uso 47 como módulo em geradores de ID distribuído há anos. A lógica é simples: cada serviço gera um número baseado em timestamp + seed, aplica módulo 47 e usa o resto como shard. Funciona bem até o momento em que dois serviços escolhem seeds com diferença múltipla de 47, o que gera sobreposição de shards e perda de paralelismo. Nada crítico, mas doloroso de diagnosticar porque o padrão de colisão não é óbvio. Em criptografia, o 47 sozinho não serve pra nada. Primos desse tamanho são risíveis para fatoração moderna. Você precisa de primos com centenas ou milhares de dígitos para RSA, e pelo menos 256 bits para curva elíptica. O que o 47 oferece é utilidade educacional e de prototipagem: explicar QKD, demonstrar aritmética modular, construir um exemplo didático de Diffie-Hellman. Ninguém deveria usar 47 em produção séria fora de contextos que eu acabei de descrever. Outro ponto cego: o 47 é primo, mas 4747 não é. 4747 = 47 × 101. Às vezes as pessoas veem o padrão repetido e assumem primalidade por analogia. Eu já corrigi isso em code review várias vezes. A regra é simples e implacável: primo é primo, ponto final. concatenação de dígitos não preserva propriedade algébrica nenhuma.

Implementação prática que eu recomendo
Se você precisa de uma função de hash com módulo 47 em Python, não faça hash(x) % 47 diretamente porque o Python usa hash com salt por padrão a partir da versão 3.3 e o valor pode ser negativo. O correto é: (x % 47 + 47) % 47 para garantir resto não-negativo, ou então usar math.fmod com tratamento de sinal. Em C ou Rust, o operador % já retorna resto com sinal do dividendo, então o mesmo padrão se aplica. Eu passei uma tarde inteira caçando um bug em 2021 que era exatamente isso: um resultado negativo de módulo em uma tabela indexada por resto de 47, causando access out-of-bounds silencioso porque o índice negativo era truncado para um valor enorme em tipo unsigned. Se você está construindo algo que precisa de primos maiores e quer uma lista pronta, o site prime-numbers.org ou a OEIS A000040 são referências confiáveis. Não confie em implementations caseiras de geração de primos para produção.
Resumo seco
O 47 é primo. Ele é útil em tabelas hash, shards simples e exemplos educacionais. Não é seguro para criptografia. Cuidado com módulo negativo e com a ilusão de que números formados por repetição de dígitos primos herdam a propriedade. Eu já paguei o preço dessas armadilhas e prefiro que você não pague também.
Galeria
-
¿Es 47 un número primo? - Calculatio -
Números primos: como saber se um número é primo ou não! - YouTube -
El número 47 es un número primo o compuesto? - Brainly.lat -
¿Es 47 un número primo? - Calculatio