- Метод Шермана — Лемана
-
Алгоритм Шермана — Лемана детерминированно раскладывает n на множители за O(n1 / 3) арифметических операций.
Алгоритм
Пусть n нечетно и n > 8.
Шаг 1. Для
проверить условие
. Если на этом шаге мы не разложили n на множители, то переходим к шагу 2.
Шаг 2. Если на шаге делитель не найден и n — составное, то n = pq, где
— простые числа, и
. Тогда для всех
и всех
проверить, является ли число
квадратом натурального числа. Если является, то для
и
выполнено сравнение
.
В этом случае проверить условие
. Если это условие выполнено, то мы разложили n на два множителя и алгоритм останавливается. Если алгоритм не нашел разложение n на два множителя, то n — простое число.
Источники: Институт проблем информационной безопасности МГУ «Информационная безопасность: криптография»
Wikimedia Foundation. 2010.