Aritmética · Algoritmos · Números Primos

Crivo de Eratóstenes

O algoritmo mais elegante da Antiguidade para encontrar todos os primos até um limite — com mais de 2200 anos de uso.

✦ O Algoritmo
Listar 2, 3, 4, …, N
Para cada primo p encontrado: riscar todos os múltiplos de p
Repetir até p > √N — os não riscados são primos
Inventado por Eratóstenes de Cirene (~276–194 a.C.), bibliotecário de Alexandria. Um dos algoritmos mais antigos e elegantes da história da matemática.

1
Algoritmo

Como funciona o Crivo

O Crivo de Eratóstenes encontra todos os primos até N de forma sistemática:

🔷 Passo a passo
  1. Listar todos os inteiros de 2 a N (começamos de 2 pois 1 não é primo por definição).
  2. O primeiro número não riscado é 2 — é primo. Riscar todos os múltiplos de 2: 4, 6, 8, 10, …
  3. O próximo não riscado é 3 — é primo. Riscar todos os múltiplos de 3: 9, 12, 15, … (6 já foi riscado).
  4. O próximo não riscado é 5 — é primo. Riscar múltiplos de 5. Continuar com 7, 11, 13, …
  5. Parar quando p > √N. Qualquer número composto maior que √N já foi riscado por algum fator menor. Os sobreviventes são todos primos.
💡 Otimização importante

Para cada primo p, podemos começar a riscar de p² (não de 2p), pois todos os múltiplos menores de p² já foram riscados por primos anteriores. Isso reduz o trabalho consideravelmente.


2
Correção

Por que o algoritmo está correto

A chave é o Teorema Fundamental da Aritmética (que já estudamos): todo número composto tem um fator primo menor ou igual à sua raiz quadrada.

Prova da correção

Seja n composto. Então n = a·b com 1 < a ≤ b < n. Como a·b = n, temos a ≤ √n. Portanto n tem um fator primo p ≤ a ≤ √n. Logo quando o crivo chega ao passo p, n já terá sido riscado como múltiplo de p.

Conclusão: ao terminar o crivo, tudo que não foi riscado não tem nenhum fator primo ≤ √N — portanto é primo. ∎

Complexidade computacional

O Crivo de Eratóstenes básico tem complexidade O(N·log(log N)) — quase linear! É muito eficiente para N até alguns bilhões com versões otimizadas (Crivo Segmentado).


3
Interativo

Crivo em Ação

Clique em "Executar Crivo" para ver o algoritmo eliminar os compostos um a um, revelando os primos até 150.

Legenda
Primo Composto (riscado) Ainda não processado

4
Análise

Distribuição dos Primos e Variantes

📊 Densidade dos primos — Teorema dos Números Primos

O Teorema dos Números Primos (Hadamard e de la Vallée-Poussin, 1896) diz que o número de primos até N, denotado π(N), satisfaz:

π(N) ≈ N / ln(N)    quando N → ∞

Exemplos: π(100) = 25 (há 25 primos até 100) · π(1000) = 168 · π(10⁶) = 78.498. Os primos ficam cada vez mais esparsos, mas nunca cessam.

Nπ(N) — primos até NN/ln N (aprox.)
1002521,7
1.000168144,8
10.0001.2291.085,7
100.0009.5928.685,9
1.000.00078.49872.382,4
Variantes modernas

Crivo de Sundaram — encontra primos da forma 2k+1. Crivo Segmentado — divide [1,N] em segmentos para funcionar com pouca memória. Crivo de Atkin — O(N/log log N), ligeiramente mais rápido para N muito grande.