Что такое решето Эратосфена
Решето Эратосфена — это алгоритм для нахождения всех простых чисел до заданного целого числа. Алгоритм прост и может быть реализован с помощью следующих шагов:
- Создайте логический (bool) массив из N элементов и инициализируйте все элементы как true.
- Установите 0-й и 1-й элементы массива как false (так как 0 и 1 не являются простыми числами).
- Если 2-й элемент массива равен true, выведите 2 как простое число.
- Установите все элементы, кратные 2, начиная с $2^2$, в false ※
- Если 3-й элемент массива равен true, выведите 3 как простое число.
- Установите все элементы, кратные 3, начиная с $3^2$, в false.
- Повторите тот же процесс для 4-го, 5-го, …, N-го элементов.
※ Причина, по которой мы устанавливаем в false элементы, начиная с квадрата числа, заключается в том, что числа, меньшие квадрата, уже были обработаны (перечисление завершено).

Реализация на Rust
| |
Немного более быстрая версия
Мы реализуем немного более быструю версию, учитывая следующие моменты:
- Вместо инициализации массива значением true, инициализируем его значением false (так быстрее).
- Поскольку кратные 2 не являются простыми числами, мы опускаем процесс установки кратных 2 в false.
- Нет необходимости выполнять цикл до n; если найти простые числа до квадратного корня из n, можно найти все простые числа до n.
| |
