То, что вы ищете, не существует. Не существует простого критерия c примитивности детерминированности, который бы работал всегда для всех диапазонов целых чисел.
Вы уже знаете о тесте Миллера-Рабина. Это можно сделать детерминированными c на определенных диапазонах; см. здесь или здесь для деталей. Если вы принимаете гипотезу Римана, то n является простым, если n является a -SPRP (псевдосилом Миллера) для всех целых чисел a с 1 <<em> a <2 (log <em>n ) ². Аналогичным и несколько лучшим тестом является тест Baill ie -Wagstaff; оно не является детерминированным c, но сбои не известны.
Для чисел n до 2 128 , не слишком сложно вычислить n - 1 и используйте критерий Поклингтона для доказательства простоты. Вы можете использовать пробное деление, или Pollard rho, или ECM для выполнения факторизации. Есть также тесты ( BLS75 ), которые могут доказать простоту на основе частичной факторизации. Большие n также могут быть проверены как простые с помощью критерия Поклингтона, хотя иногда факторизация становится трудной.
Для n до приблизительно 10 1000 быстрое простое тестирование E CPP не является необоснованным, хотя для больших чисел в этом диапазоне это может занять некоторое время. Кроме того, если ваш номер не имеет особой формы, вам почти не повезло.