Тест на простоту (Міллера-Рабіна)

Введення числа

Приклади чисел:

Результат тесту

Введіть число і натисніть "Почати перевірку"

Пояснення алгоритму Міллера-Рабіна:

Принцип алгоритму: Міллер-Рабін — це імовірнісний тест простоти, заснований на розширенні малої теореми Ферма. Для непарного числа n запишіть n-1 як 2^r × d, потім перевірте, чи виконується:
a^d ≡ 1 (mod n) 或 a^(2^i × d) ≡ -1 (mod n) 对某个 0 ≤ i < r
Кількість раундів тестування та точність:
  • Імовірнісне тестування:Випадково вибрати основу a; кожен раунд тесту знижує похибку до 1/4
  • k раундів тестування:Теоретична похибка ≤ (1/4)^k, фактична похибка значно менша
  • Детерміноване тестування:Для n < 3 317 044 064 679 887 385 961 981, використання специфічного набору основ {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37} дає 100% точний результат
Особливі випадки:
  • Малі прості числа:Числа 2, 3, 5, 7 визначаються безпосередньо
  • Парні числа:Всі парні числа, крім 2, є складеними
  • Числа Кармайкла:Числа, що проходять тест Ферма, але насправді є складеними (наприклад, 561), правильно визначаються тестом Міллера-Рабіна

Сценарії застосування:

  • Криптографія: швидке визначення великих простих чисел при генерації ключів RSA
  • Дослідження теорії чисел: пошук простих чисел Мерсенна, двійкових простих, простих-близнюків тощо
  • Спортивне програмування: швидка перевірка простоти з часовою складністю O(k log³n)
  • Генерація випадкових чисел: створення великих простих чисел, що відповідають певним критеріям