Тест простоты числа (Миллер-Рабин)

Ввод числа

Примеры чисел:

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

Введите число и нажмите «Начать проверку»

Объяснение алгоритма Миллера-Рабина:

Принцип алгоритма: Миллер-Рабин — это вероятностный тест простоты, основанный на расширении малой теоремы Ферма. Для нечётного числа 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)
  • Генерация случайных чисел: генерация больших простых чисел, удовлетворяющих определённым критериям