Что ты факторинг?Общие 200-значные числа?В этом случае используйте http://pari.math.u -bordeaux.fr / dochtml / gpman.html или какой-нибудь Python-интерфейс к нему.(Есть несколько, я знаю, что http://www.sagemath.org/ может сделать это, а https://pypi.org/project/cypari/ дает вам интерфейс без остального.)
Они обычно будут быстрыми, потому что они используют различныеподходов, которые могут найти факторы.Пробное деление на очень малые факторы, Рабина-Миллера для проверки на первичность, эллиптические кривые для относительно небольших факторов и т. Д.
С другой стороны, если вы ищете фактор 200Цифровые числа, которые появляются в криптографии, у вас есть больше работы.Они сознательно делают свои числа неспособными учесть любые быстрые вещи, которые вы можете попробовать.Как указывает https://en.wikinews.org/wiki/Two_hundred_digit_number_factored, для этого буквально требуются годы процессорного времени, поэтому вы должны использовать высокооптимизированные реализации (т.е. не написанные на Python) и распределять большую часть работы по нескольким машинам.
Дляна самом деле выполнить такую факторизацию, я бы посоветовал начать с https://en.wikipedia.org/wiki/General_number_field_sieve#Implementations и перейти оттуда.
Если ваша цель - понять, как работает факторизация, вы пройдете длинный путь черезкуча литературы по теории чисел.Я бы порекомендовал сначала попробовать изучить квадратичное сито, потому что оно связано и намного проще.(Следовательно, это более короткий путь для понимания, и он будет мотивировать вас, когда вы решите более сложный.) Это сито не так хорошо, как сито общей теории чисел для 200-значных чисел, но оно лучше для 100-значных, так что этовсе еще довольно круто.