diff --git a/multiplication/karatsuba.py b/multiplication/karatsuba.py new file mode 100644 index 0000000..8061182 --- /dev/null +++ b/multiplication/karatsuba.py @@ -0,0 +1,16 @@ +def karatsuba(x,y): + if len(str(x)) or len(str(y)) : + return x*y + else: + n = max(len(str(x)),len(str(y))) + z = n / 2 + a = x / 10**(z) + b = x % 10**(z) + c = y / 10**(z) + d = y % 10**(z) + ac = karatsuba(a,c) + bd = karatsuba(b,d) + adbc = karatsuba(a+b,c+d) - ac - bd + return ac * 10**(2*z) + (adbc * 10**z) + bd + +karatsuba (923,1723) \ No newline at end of file