def karatsuba(x,y): str_x, str_y=str(x), str(y) n=max(len(str_x), len(str_y)) if n==1: return x*y elif n%2!=0: n+=1 n_2=int(n/2) a, b = int(str_x[:n_2-1]), int(str_x[n_2:]) c, d = int(str_y[:n_2-1]), int(str_y[n_2:]) ac=karatsuba(a,c) bd=karatsuba(b,d) p=karatsuba((a+b),(c+d))-ac-bd return int((10**n)*ac+(10**(n/2)*p)+bd) print(karatsuba(1685287499328328297814655639278583667919355849391453456921116729,7114192848577754587969744626558571536728983167954552999895348492))
Не могу понять от куда она тянется, ткните носом если не сложно.
Спасибо