Как производить математические операции с большими числами?

Создал алгоритм для определения числа на простоту.
Написал программу на C++, которая из диапазона 1 ... 2^64 - 1 максимально большое простое число 18446744073709551557 проверяет за 7-8 секунд.
Теперь хотелось бы работать с числами произвольной длины, но не знаю как.
В общем нужно производить три операции с большими числами: вычисление квадратного корня числа (sqrt), округление числа к ближайшему целому (ceil) и деление по модулю (остаток от деления, %).
Подскажите, как можно организовать эти три операции над сверхбольшим числом в C++.
  • Вопрос задан
  • 1247 просмотров
Пригласить эксперта
Ответы на вопрос 3
kumaxim
@kumaxim
Web-программист
Фраза для гугла "Длинная арифметика С++"
Ответ написан
Комментировать
@vilgeforce
Раздолбай и программист
Есть готовая и достаточно быстрая реализация в openSSL - BN. Можете ее использовать, можете их сорцы посмотреть (но там черт ногу сломит). Есть еще MIRACL (тоже с сорцами), но у них проблемы с производительностью и документация не очень местами. Можете посмотреть GMP, но лично не использовал.
Ответ написан
Комментировать
Vestail
@Vestail
Software Engineer
GMP
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы