Меню

Главная
Случайная статья
Настройки
Детерминированный алгоритм факторизации Ленстры
Материал из https://ru.wikipedia.org

Детерминированный алгоритм факторизации Ленстры Сложность . [1]

Следует отметить, что несмотря на относительно неплохую эффективность среди экспоненциальных алгоритмов, в алгоритме Ленстры есть необходимость неоднократно вычислять квадратный корень в одном из шагов алгоритма, что, безусловно, является более трудоёмким, чем сложение или вычитание[2].

Пусть — натуральные числа, удовлетворяющие условиям

Шаг 1. С помощью обобщённого алгоритма Евклида найти . Найти такое, что .

Шаг 2. Для очередного значения найти числа по следующим правилам:

при :

— частное от деления на , за исключением случая, когда нечётно и остаток от деления равен нулю.

Шаг 3. Для очередного выбора найти все целые числа , удовлетворяющие условиям

,

если четное,

если нечетное.

Шаг 4. Для каждого c из шага 3 решить в целых числах систему уравнений



Если и окажутся неотрицательными целыми числами, то добавить

Шаг 5. Если , то алгоритм заканчивает работу. Иначе, возвращаемся на шаг 2 к следующему значению .

Примечания
  1. H. W. Lenstra. Divisors in Residue Classes // Mathematics of Computation. — 1984. — Т. 42, № 165. Архивировано 5 мая 2019 года.
  2. Василенко, 2003, с. 73.
  3. Василенко, 2003, с. 69.


Литература
Downgrade Counter