RosettaCodeData/Task/Long-multiplication/EasyLang/long-multiplication.easy
2024-10-16 18:07:41 -07:00

33 lines
666 B
Text

func[] bnmul a[] b[] .
len r[] len a[] + len b[]
for ia = 1 to len a[]
h = 0
for ib = 1 to len b[]
h += r[ia + ib - 1] + b[ib] * a[ia]
r[ia + ib - 1] = h mod 10000000
h = h div 10000000
.
r[ia + ib - 1] += h
.
while r[$] = 0
len r[] -1
.
return r[]
.
func$ str bn[] .
s$ = bn[$]
for i = len bn[] - 1 downto 1
h$ = bn[i]
s$ &= substr "0000000" 1 (7 - len h$) & h$
.
return s$
.
func[] bn s$ .
i = len s$ - 7 + 1
while i >= -5
r[] &= number substr s$ i 7
i -= 7
.
return r[]
.
print str bnmul bn "18446744073709551616" bn "18446744073709551616"