Відповіді:
Якщо , і у нас є алгоритм, який може вирішити задачу k-SAT в поліноміальний час, то цілочисельну факторизацію можна просто звести до k-SAT, описуючи факторинг як задачу в k-SAT.
По суті це працює так: Ви створюєте купу змінних, кожна з яких представляє біти , і q , n . Потім ви формулюєте задачу k-SAT як p ∗ q = n . Оскільки n відомо, ви можете встановити ці значення. Тоді задовольняюче завдання опише дійсні p і q . Для опису множення в k-SAT ви можете використовувати будь-який з відомих алгоритмів множення і описати його логічну схему в k-SAT. Більш детальну інформацію про зменшення факторингу до k-SAT дивіться тут .
Що стосується кращого розуміння факторингу, то, ймовірно, знадобиться більше досліджень та аналізу магічного алгоритму (який може вирішити NP-повне завдання в детермінованому багаточленному часі), і, можливо, спеціалізувати його на формуванні цілочислового факторингу задачі k-SAT (що, очевидно, має дуже специфічна структура, залежно від використовуваного алгоритму множення).
Проблема рішення для факторингу - і факторинг може бути зведений до нього в детермінований поліном час.
Якщо то будь-яка проблема в N P, включаючи факторинг, матиме алгоритм багаточленного часу.
Зауважимо, що найвідоміші детерміновані / ймовірнісні алгоритми для факторингу на даний момент займають експоненціальний час, тому поліноміальний алгоритм часу буде великим вдосконаленням. Щоб відчути це, розгляньте факторинг 2000-бітного числа. Один може зайняти більше часу, ніж весь час після великого удару, інший може відповісти за кілька мілісекунд.