Long multiplication: Difference between revisions
Content added Content deleted
VincentARM (talk | contribs) (add task to arm assembly rapberry pi) |
(EasyLang) |
||
Line 3,407: | Line 3,407: | ||
<pre>340282366920938463463374607431768211456 |
<pre>340282366920938463463374607431768211456 |
||
340282366920938463463374607431768211456</pre> |
340282366920938463463374607431768211456</pre> |
||
=={{header|EasyLang}}== |
|||
<syntaxhighlight lang="easylang"> |
|||
proc mult a$ b$ . r$ . |
|||
r$ = "" |
|||
a[] = number strchars a$ |
|||
b[] = number strchars b$ |
|||
len r[] len a[] + len b[] |
|||
for ib range0 len b[] |
|||
b = b[len b[] - ib] |
|||
tmp = 0 |
|||
for ia range0 len a[] |
|||
tmp += r[ia + ib + 1] |
|||
tmp += b * a[len a[] - ia] |
|||
r[ia + ib + 1] = tmp mod 10 |
|||
tmp = tmp div 10 |
|||
. |
|||
ir = ib + len a[] + 1 |
|||
while tmp <> 0 |
|||
tmp += r[ir] |
|||
r[ir] = tmp mod 10 |
|||
tmp = tmp div 10 |
|||
ir += 1 |
|||
. |
|||
. |
|||
for i = len r[] downto 1 |
|||
if r$ <> "" or r[i] <> 0 or i = 1 |
|||
r$ &= r[i] |
|||
. |
|||
. |
|||
. |
|||
call mult "18446744073709551616" "18446744073709551616" r$ |
|||
print r$ |
|||
</syntaxhighlight> |
|||
=={{header|EchoLisp}}== |
=={{header|EchoLisp}}== |