Algo -> Python so convenient !


Multiplication a la Francais.

         

Python implementation

function multiply(x; y)
Input: Two n-bit integers x and y, where y >= 0
Output: Their product
if y = 0: return 0
z = multiply(x; by=2c)
if y is even:
   return 2z
else:
   return x + 2z
 
  1. def mul(x, y):
  2.         if y == 0:
  3.                 return 0
  4.         z = mul(x, y/2)
  5.         if y % 2 == 0:
  6.                 return 2*z
  7.         else:
  8.                 return x + 2*z

Source: P24, Algorithms, Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, 2006