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