Тестер за прости числа (Miller-Rabin)

Въвеждане на число

Примерни числа:

Резултат от проверката

Въведете число и щракнете "Стартиране на проверка"

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

Принцип на алгоритъма: Miller-Rabin е вероятностен тест за простота, базиран на разширение на малката теорема на Ферма. За нечетно число 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) могат да бъдат правилно идентифицирани от Miller-Rabin

Приложни сценарии:

  • Криптография: Бързо определяне на големи прости числа при генериране на RSA ключове
  • Изследване на теория на числата: Търсене на Мерсенови прости числа, двойни прости числа, близнаци и др.
  • Състезателно програмиране: Бърз тест за простота с времева сложност O(k log³n)
  • Генериране на случайни числа: Генериране на големи прости числа, отговарящи на конкретни критерии