You are on page 1of 2

Karatsuba Algorithm

X=1234=>1200+34=>(12*10 POW 2)+34

Y=5678=>5600+78=>(56*10 POW 2)+78

=>ac*10 pow 4 + ad*10 pow 2 + bc*10 pow 2 +bd

=>ac*10 pow 4+ (ad+bc)10 pow 2 +bd

=>ac*10 pow 4 + [((a+b)(c+d))-ac-bd]*10 pow 2 +bd

=>n=max(x length,y length)

=>n/2=2

=>ac*10 pow n + [(a+b)(c+d)-ac-bd]*10 pow n/2 +bd

Eg

=>x=56,y=78

n=max(x length,y length)

n=max(2,2)

n=2

n/2=1

a=x/10=56/10=5

b=x%10=56%10=6

c=y/10=78/10=7

d=y%10=78%10=8

ac=5*7=35

bd=6*8=48

(a+b)(c+d)=(11*15)

X=11,y=15

N=max(2,2)

N=2

n/2=1

a=11/10=1

b=11%10=1
c=15/10=1

d=15%10=5

=>ac=(1*1)=1

=>bd=(1*5)=5

(a+b)(c+d)=(2*6)=12

=>1*10 pow 2 +[(12-1-5)]*10 pow 1+5

=>1*10 pow 2+[6]*10+5

=>10 pow 2+ 60 +6

=165

When (a+b)(c+d)=(11,15)=>165

ac=5*7=35

bd=6*8=48

(a+b)(c+d)=(11*15)

So

=>ac*10 pow 2+[(a+b)(c+d)-ac-bd]* 10 pow 1+bd

=>35*10 pow 2+[165-35-48]*10 pow 1+48

=>35*10 pow 2+82*10 pow 1+48

=>3500+820+48

=>4368

You might also like