1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
def expt(x, y): z = 1 while (y > 0): if (y % 2 == 0): y = y/2 x = x*x else: z = z*x y = y-1 print x, y, z, z * x**y print 'done!' return z expt(5, 6); expt(5, 2); expt(2, 17);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
25 3 1 15625 25 2 25 15625 625 1 25 15625 625 0 15625 15625 done! 25 1 1 25 25 0 25 25 done! 2 16 2 131072 4 8 2 131072 16 4 2 131072 256 2 2 131072 65536 1 2 131072 65536 0 131072 131072 done!