Мне нужно вычислить a*a
mod n
, но a
довольно велико, что приводит к переполнению, когда я возводил его в квадрат. Выполнение ((a % n)*(a % n)) % n
не работает, потому что (n-1)2 может переполниться. Это на С++, и я используюint64_t
Пример значения :a = 821037907258 и n = 800000000000, которое переполняется, если вы возводите его в квадрат.
Я использую DevCPP, и я уже пытался получить большие-целочисленные библиотеки, работающие безрезультатно.
Нет, для этих чисел нет шаблона.