Как в C / C ++ вычислить (a^b)%m
, где b
не умещается в 64 бита? Другими словами, есть ли способ вычислить указанное выше значение, используя b%m
вместо b
?
И есть ли какой-либо алгоритм, который может вычислить вышеуказанный результат за O(log(b))
или O(log(b%m))
время?