O que é o Crivo de Eratóstenes?
O Crivo de Eratóstenes é um algoritmo para encontrar todos os números primos até um determinado limite. O algoritmo é simples e pode ser implementado através das seguintes etapas:
- Crie um array booleano com N elementos e inicialize todos os elementos como verdadeiros (true).
- Defina os elementos nas posições 0 e 1 do array como falsos (pois 0 e 1 não são números primos).
- Se o 2º elemento do array for verdadeiro, imprima 2 como número primo.
- Defina todos os múltiplos de 2 a partir de $2^2$ como falsos (*).
- Se o 3º elemento do array for verdadeiro, imprima 3 como número primo.
- Defina todos os múltiplos de 3 a partir de $3^2$ como falsos.
- Repita o mesmo processo para o 4º, 5º, …, e N-ésimo elementos.
- O motivo de começar a definir como falsos os múltiplos a partir do quadrado (ex: $2^2$) é que os números menores que o quadrado já foram processados (já foram marcados ou listados).

Implementação em Rust
| |
Versão levemente otimizada
Podemos otimizar um pouco a implementação considerando os seguintes pontos:
- Inicializar o array com falso (false) em vez de verdadeiro (true) (isso é mais rápido).
- Uma vez que múltiplos de 2 não são números primos, pule o processo de definir múltiplos de 2 como falso.
- Não é necessário iterar até n; listar os números primos até a raiz quadrada de n é suficiente para encontrar todos os primos menores ou iguais a n.
| |
