I read such a algorithms to implement expmod computation in sicp
#+begin_src ipython :session sicp :results output
def expmod(base, exp, m):
# base case
if exp == 0: return 1
if evenp(exp):
return expmod(base, exp/2, m) ** 2 % m
else:
return base * expmod(base, exp-1, m) % m
def evenp(n):
return n % 2 == 0
print(expmod(2, 8, 7))
#+end_src
#+RESULTS:
: 4
The algorithms employed the principle that
(x % mod) ** 2 = x**2 % mod
How could prove it?