Небольшой класс Large
для работы с длинной арифметикой целых чисел. Поддерживаемые операции:
- Сложение за
$O(n)$ - Вычитание за
$O(n)$ - Умножение с помоью алгоритма Карацубы за
$O(n^{\log_2{3}})$ - Деление за
$O(\log{n} * n^{\log_23})$ - Остаток от деления за
$O(\log{n} * n^{\log_23})$ - Возведение в степень P за
$O(\log{P} * n^{\log_23})$ - Перевод в строку за
$O(n)$ - Инкремент и декремент за
$O(n)$ - Присваивание и инициализация, используя move-семантику
Также имеется 3 конструктора класса: из int64_t
, std::string
и по умолчанию, задающий 0.