a^b может быть слишком большим для "влезания" в какой-то тип, да и втупую считать не хочется.
Что можно придумать, чтобы эффективно это посчитать?
я знаю
https://habrahabr.ru/post/124258/
Если все числа положительные и нет переполнений, то (a * b % c) == (a % c * b % c) % c. Можно этим пользоваться и перемножать в 64-битном типе, а потом брать по модулю (если он 32-битный).
А если степень большая, то http://e-maxx.ru/algo/binary_pow
Обсуждают сегодня