17-05-2023
P-1 метод Полларда — алгоритм разложения натурального числа на простые множители. Предложен Джоном Поллардом в 1974 году. Алгоритм предназначен для нахождения простых делителей , у которых хорошо раскладывается на множители, то есть имеет небольшой максимальный простой делитель. Если обозначить этот максимальный простой делитель , то алгоритм требует действий. Метод очень быстро находит простые факторы малой и средней величины (до 20-25 десятичных цифр). Актуальным рекордом для P-1 метода является простой делитель числа , состоящий из 66 десятичных цифр, установленный T. Nohara 29.06.2006.
Содержание |
Предположим, дано число , которое не является степенью какого-либо простого числа и имеет простой делитель , который заранее неизвестен. Выберем произвольные натуральные (как правило ) и (например, ).
Далее вычислим число как произведение степеней всех простых чисел , не превосходящих выбранную границу , где максимальные натуральные числа, удовлетворяющие . Если простой делитель заданного числа обладает свойством, что раскладывается на простые делители меньшие либо равные , то заведомо .
Согласно малой теореме Ферма в группе справедливо , что равносильно НОД. Заметим, что . Если граница выбрана удачно, скорее всего НОД будет равен . В некоторых случаях можно получить НОД равным . Это означает, что метод нашёл сразу все делители. В этом случае надо просто уменьшить значение . Также заметим, что так как может быть достаточно большим числом, то все вычисления производятся по модулю .
Если НОД, это означает, что алгоритм завершился неудачно и имеет делители большие чем . Возможным планом действий могут быть:
Если «шаг 1» завершился неудачно, значит . Но может быть, что для некоторого простого числа .
Обозначим , тогда или опять же НОД. Таким образом, можно рассмотреть все простые числа между и и для каждого высчитать . Однако, это не очень эффективно.
Более эффективными может быть следующие выполнение «шага 2»:
Рассмотрим все простые числа между и . Пусть обозначает j-ое простое число. Так как разница между двумя соседними простыми числами заведомо мала (не более чем ), то мы можем сохранить в таблице значения , где . Далее, мы можем вычислить последовательно для всех в указанных выше границах значения .
Peter L. Montgomery предложил другие более эффективные варианты «шага 2».
На данный момент (09.12.2008) три самых больших простых делителя[1], найденых методом P-1, состоят из 66, 58 и 57 десятичных цифр.
Кол-во цифр | p, p-1 | Делитель числа | Найден (кем) | Найден (когда) | B | B2 |
---|---|---|---|---|---|---|
66 | 672038771836751227845696565342450315062141551559473564642434674541 2².3.5.7.17.23.31.163.401.617.4271.13681.22877.43397.203459.1396027.6995393.13456591.2110402817 | 960^119-1 | T. Nohara | 29.06.2006 | 10^8 | 10^10 |
58 | 1372098406910139347411473978297737029649599583843164650153 2³.3².1049.1627.139999.1284223.7475317.341342347.2456044907.9909876848747 | 2^2098+1 | P. Zimmermann | 28.09.2005 | 10^10 | 10^13 |
57 | 357561419933316305231935975632510092006707198190314688497 2^4.3².11.31.612.2131.7703.102199.12170281.294393133.346193663.940452192083 | 6^396+1 | P. Zimmermann | 31.10.2003 | 10^9 | 10^12 |
P-1 алгоритм.