Чтобы уточнить немного ...
(a * b) mod m == ((a mod m) * (b mod m)) mod m
Если вы помните из базовой математики,
a ^ 10 = (a ^ 5) * (a ^ 5)
Итак, вы можете разделить свои сумасшедшие высокие силы на более низкие, а затем взять модуль их значения (таким образом, сохраняя значение небольшим), а затем рекомбинировать их:
Too Big! = Just Right!
(2 ^ 20) mod 113 = (((2 ^ 10) mod 113) * ((2 ^ 10) mod 113)) mod 113
Я не знаю, считается ли это «отдачей», но у моих учеников были проблемы с этим однажды, и у меня не было проблем с показом им этого трюка. Кроме того, я предполагаю, что это больше упражнение в рекурсии, чем что-либо еще.