C или C++: библиотеки для факторизации целых чисел?

кажется, что существует несколько очень быстрых алгоритмов простой факторизации (один, который выглядит идеальным, - квадратичное просеивание). Однако вместо того, чтобы создавать свою собственную (вероятно, плохую) реализацию, я хотел бы использовать готовую библиотеку для простоты.

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

Я уже посмотрел на некоторые из реализаций, перечисленных в страница квадратичного сита Википедии. Однако некоторые из реализаций не кажутся ухоженными; некоторые не имеют документации; и так далее! Я проверил, есть ли у нескольких известных библиотек, таких как Boost, методы факторизации, но они, похоже, нет.

может ли кто-нибудь порекомендовать библиотеку, соответствующую вышеуказанным критериям?

2 ответов


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

Msieve является результатом моих усилий, чтобы понять и оптимизировать, как целые числа учитываются с использованием самых мощных современных алгоритмов.

эта документация соответствует версии 1.46 библиотеки Msieve. Не рассчитывайте стать экспертом по факторингу, просто прочитав его. Я включен относительно полный список ссылок, которые вы можете и следует посмотреть, если вы хотите рассматривать код как нечто большее, чем черный ящик чтобы решить ваши проблемы факторинга.


как о GMP-ECM?