Задано натуральное число

, которое при делении на

даёт остаток, отличный от

. Два следующих алгоритма находят натуральные числа

и

, удовлетворяющие условиям

и

, с наименьшей возможной разностью

.
Количество шагов в методе Фурье равно

. Модифицированный алгоритм может выполнять меньшее число шагов, но не обязательно будет быстрее, так как каждый шаг сложнее и требует больше времени.
Переменная

является счётчиком шагов (фактическое число шагов равно

). Эта переменная полезна для досрочного окончания работы программы.
Обычно рекомендуется прогонять алгоритм не только для числа

, но и для ряда чисел вида

, где значения

выбираются так, чтобы остаток от деления

на

отличался от

. Если удастся подобрать такое

, чтобы

было произведением двух достаточно близких множителей, то метод Фурье может найти их существенно быстрее.
Алгоритм метода Фурье.
1) Начальные значения:

,

.
2) Вычислить

,

,

. Если число

не целое, повторить пункт 2).
3) Вычислить

,

. Закончить работу.
Алгоритм модифицированного метода Фурье, который предлагает
Побережный Александр.
1) Присвоить

и

. Если

, то присвоить

и закончить работу.
2) Вычислить

и

.
3) Начальное значение:

; если

, то присвоить

.
4) Начальное значение:

.
5) Если число

целое, перейти в пункт 7).
6) Вычислить

,

,

и перейти в пункт 5).
7) Вычислить

,

. Закончить работу.
Примеры. Windows 7. Wolfram Mathematica 9.0. Четырёхъядерный процессор Intel(R) Xeon(R) X3320 2.50GHz. Время работы — в секундах.
Пример 9. В таблицу не влезает.

Число шагов в обоих алгоритмах одинаковое:

.
Метод Ферма: время работы равно

с,

,

.
Метод Побережного: время работы равно

с,

,

.
В общем, обсуждаемый метод может быть существенно эффективнее первоначального метода Фурье, если числа

и

сильно различаются, и хватит терпения дождаться результата. Может быть, автору следует подумать над тем, чтобы запустить метод в обратном направлении. В поиске сильно различающихся делителей он может быть эффективным.
Насколько этот метод новый — понятия не имею.