"""karatsuba algo"""
def fast(x,y):
if len(str(x))==1 or len(str(y))==1:
return x*y
else:
n = max(len(str(x)),len(str(y)))
m = n//2
a = x//10**m
b = x%10**m
c = y//10**m
d = y%10**m
k = fast(a,c)
n = fast((a+b),(c+d))
o = fast(b,d)
return (10**2*m*k) +(10**m*(n-k-o))+(o)
print(fast(10515610,5651551460))
python不应该有任何溢出问题。那么为什么当输入很大时它会返回负答案?