Gerador de Números Primos Online
O que é um número primo?
Um número primo é um número natural maior que 1 que só é divisível por 1 e por si mesmo. Os menores números primos são 2, 3, 5, 7, 11, 13, 17, 19, 23, 29… O número 2 é o único número primo par – todos os outros números pares são divisíveis por dois.
Números como 4 (= 2 × 2), 6 (= 2 × 3) ou 15 (= 3 × 5) não são primos – são chamados de números compostos.
Como o gerador funciona?
Para listar todos os números primos em um intervalo, usamos o Crivo de Eratóstenes – um dos algoritmos mais antigos e eficientes, descrito pelo matemático grego Eratóstenes de Cirene por volta de 240 a.C.
O algoritmo elimina progressivamente os múltiplos de cada número primo encontrado. O que resta são os números primos. Todo o cálculo ocorre diretamente no seu navegador – nenhum dado é enviado para o servidor.
Para a seleção aleatória, o gerador primeiro constrói uma lista de todos os números primos no intervalo e, em seguida, seleciona aleatoriamente o número desejado usando um gerador criptograficamente seguro (crypto.getRandomValues()).
Recursos do gerador
- Todos os primos – lista todos os números primos no intervalo especificado (máx. 10 000)
- Seleção aleatória – seleciona N números primos aleatórios do intervalo (adequado para grandes intervalos)
- Classificação – classifica os resultados em ordem crescente
- Separador – escolha como os números serão separados ao copiar
- Predefinições rápidas – os intervalos mais comuns com um clique
Onde os números primos são usados?
Criptografia e segurança
Números primos são a base da criptografia moderna. Algoritmos como RSA funcionam no princípio de que o produto de dois grandes números primos é fácil de calcular, mas a fatoração de volta para os números primos originais é computacionalmente muito difícil.
- Criptografia RSA – chaves são geradas a partir de dois grandes números primos
- Diffie-Hellman – troca de chaves sobre um módulo primo
- Funções de Hash – números primos como constantes mágicas (SHA, MD5)
Matemática e ciência
- Teoria dos números – os blocos de construção fundamentais dos números inteiros
- Conjectura de Goldbach – todo número par > 2 pode ser expresso como a soma de dois números primos (ainda não provado)
- Hipótese de Riemann – um dos problemas de Hilbert, relacionado à distribuição de números primos
Usos práticos
- Tabelas Hash – o tamanho da tabela como um número primo reduz colisões
- Geradores de números pseudoaleatórios – congruência linear com um módulo primo
- Música e ritmo – polirritmos com durações de ciclo primárias
Distribuição de números primos
Os números primos são distribuídos irregularmente entre os números naturais, mas sua densidade diminui com o aumento do intervalo. Isso é descrito pelo Teorema dos Números Primos: o número de primos até N é aproximadamente N / ln(N).
| Intervalo | Número de primos |
|---|---|
| 1–10 | 4 |
| 1–100 | 25 |
| 1–1 000 | 168 |
| 1–10 000 | 1 229 |
| 1–100 000 | 9 592 |
| 1–1 000 000 | 78 498 |
Crivo de Eratóstenes passo a passo
Intervalo 2–30:
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
1. Selecione 2, risque os múltiplos: 4, 6, 8, 10, 12...
2. Selecione 3, risque os múltiplos: 9, 15, 21, 27...
3. Selecione 5, risque os múltiplos: 25...
4. √30 ≈ 5.5 → concluído
Números primos: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29
Crivo de Eratóstenes em código
JavaScript
function sieve(to) {
const composite = new Uint8Array(to + 1);
const primes = [];
for (let p = 2; p <= to; p++) {
if (composite[p]) continue;
primes.push(p);
for (let j = p * p; j <= to; j += p) composite[j] = 1;
}
return primes;
}
Python
def sieve(n):
composite = bytearray(n + 1)
primes = []
for p in range(2, n + 1):
if not composite[p]:
primes.append(p)
for j in range(p * p, n + 1, p):
composite[j] = 1
return primes