Apr-24-2018, 06:37 AM
You can replace
a * b
with a function call mul(a, b)
and do the print in mul()
:def mul(a, b): res = a * b print('{} * {} ⁼ {}'.format(a, b, res)) return res def expo(a,n): if n == 0: return 1 elif n%2 == 0: return expo(mul(a, a), n/2) elif n%2 == 1: return mul(a, expo(mul(a, a), (n-1)/2)) if __name__ == '__main__': expo(3, 25)
Output:3 * 3 ⁼ 9
9 * 9 ⁼ 81
81 * 81 ⁼ 6561
6561 * 6561 ⁼ 43046721
43046721 * 43046721 ⁼ 1853020188851841
43046721 * 1 ⁼ 43046721
6561 * 43046721 ⁼ 282429536481
3 * 282429536481 ⁼ 847288609443