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

по модулю простых чисел

для множителей

, составляющих число

.
Попытаюсь тезисами и на примере, описать суть метода:
1) Любое число может быть представлено произведением:

;
2) Числа

, имеют остатки по модулям простых чисел

;
3) Причем количество простых чисел

, взятых в качестве базиса будет ограничено произведением этих простых чисел

, результат, которых превышает

.
т.е.

Далее объясню на примере:

Базис простых чисел

ограничен:

,
так как:

Далее для

:





:





:




Т.е. получится:




Грубо говоря для каждой строчки выполняется уравнение:

где,

- модуль простого числа

- остатки по модулю простого числа

- "База" по модулю простого числа
Имея верные

для каждого

- можно "вычислить" множители

, решая систему уравнений по модулю, используя Китайскую теорему об остатках.
https://ru.wikipedia.org/wiki/%D0%9A%D0 ... 0%B0%D1%85Сам подбор пар для

относительно прост и может быть сгенерирован сервисом wolfram alpha.
Пример для:
https://www.wolframalpha.com/input/?i=pq+mod+3+%3D+1 Аналогично, можно вписать другие модули

и остатки

.
Главная проблема состоит в том, чтобы подобрать верные

для каждого

, да так чтобы проверка представляла собой алгоритм с полиномиальной сложностью.
Итак, рассмотрим пример для


Мы можем получить остаток 1 по модулю 3, только в двух случаях:
1)

2)

Именно для

и

мне удалось найти способ, как быстро проверить, какая пара

используется для данного соотношения:

Для этого я нахожу решения для уравнения:

Чтобы найти решения быстро, я применяю алгоритм Корначи:
https://en.wikipedia.org/wiki/Cornacchia%27s_algorithmЕсли решения в целых числах есть, то

, если нет, то

А теперь интересующие вопросы:
1) Можно ли доказать что при случае

, всегда имеются решения? Не нашел контрпримера.
2) Какая существует квадратичная форма для второй пары

. Мне не удалось найти (возможно их несколько).
Интуитивно понимаю, что разобравшись в данных вопросах можно перейти к другим остаткам

и модулям

Заранее, спасибо!