Поиск простых чисел — фундаментальная задача теории чисел, имеющая важное значение в криптографии, компьютерных науках и математике. Простым числом называется натуральное число, большее 1, которое имеет ровно два делителя: 1 и само себя.
Классический алгоритм поиска всех простых чисел до заданного числа n. Эффективен для относительно небольших диапазонов (до 10⁷-10⁸).
Более современный алгоритм (2004 г.), который находит все простые числа до заданного предела n быстрее, чем решето Эратосфена.
Для проверки отдельных больших чисел на простоту используются вероятностные и детерминированные тесты.
Вероятностный тест, работающий за O(k log³n), где k — количество раундов. Точность: вероятность ошибки ≤ 4⁻ᵏ.
Первый детерминированный полиномиальный тест простоты (2002 г.), работает за O(log⁶n).
| Алгоритм | Диапазон | Сложность |
|---|---|---|
| Решето Эратосфена | До 10⁸ | O(n log log n) |
| Решето Аткина | До 10¹⁰ | O(n/log log n) |
| Тест Миллера-Рабина | Одиночные числа | O(k log³n) |
В криптографии, особенно в RSA-шифровании, используются очень большие простые числа (сотни цифр). Для их генерации применяют: