у вас есть примерно два вопроса, общий и конкретный о вашем коде. конкретный обрабатывается в другом ответе. общий вопрос в заголовке о сложности факторинга очень глубокий. к сожалению, нет убедительных научных доказательств того, что факторинг находится за пределами P, за исключением (в основном косвенных) «многих экспертов, которые пытались потерпеть неудачу», и некоторые эксперты предполагают, что он находится внутри P; это рассматривается как одна из главных (и очень трудно решаемых) открытых проблем теории сложности. после десятилетий «тяжелой атаки» лучшие алгоритмы экспоненциальны. сложность факторинга является одной из «немногих исключительных проблем», которые, как известно, лежат «между» P и NP завершенными, но до сих пор не классифицировались как ни одна.
Как указывалось, сложность не была большой проблемой, пока она не стала использоваться («примерно») в криптосистемах RSA в середине 1980-х годов, где криптографическая безопасность зависит от предположения. (две другие «не совсем обнадеживающие» связанные точки данных: алгоритм Шорса для квантового факторинга P-времени и тестирование простоты был доказан в P в начале 2000-х годов в знаменитом / знаменитом алгоритме AKS .) Возможный положительный результат будет состоять в том, что это в квазиполиномиальном времени , которое слабее, чем NP Complete (при условии, что P ≠ NP и NP complete имеет экспоненциальное время нижней границы ), но все еще технически "трудно".
до сих пор не нашли большой обзор по этому ключевому вопросу. Однако см. также