21 lines
483 B
Python
21 lines
483 B
Python
#!/usr/bin/env python
|
|
|
|
def digits(x):
|
|
return [int(c) for c in str(x)]
|
|
|
|
def mult_table(xs, ys):
|
|
return [[x * y for x in xs] for y in ys]
|
|
|
|
def polymul(xs, ys):
|
|
return map(lambda *vs: sum(filter(None, vs)),
|
|
*[[0] * i + zs for i, zs in enumerate(mult_table(xs, ys))])
|
|
|
|
def longmult(x, y):
|
|
result = 0
|
|
for v in polymul(digits(x), digits(y)):
|
|
result = result * 10 + v
|
|
return result
|
|
|
|
if __name__ == "__main__":
|
|
print longmult(2**64, 2**64)
|