Egyptian division: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Changed to Wren S/H) |
(Add PARI/GP implementation) |
||
Line 2,443: | Line 2,443: | ||
- : int * int = (17, 578) |
- : int * int = (17, 578) |
||
</pre> |
</pre> |
||
=={{header|PARI/GP}}== |
|||
{{trans|Julia}} |
|||
<syntaxhighlight lang="PARI/GP"> |
|||
myrow(powers_of2, doublings) = |
|||
{ |
|||
if (dividend > doublings, |
|||
myrow(2 * powers_of2, 2 * doublings); |
|||
if (accumulator + doublings <= dividend, |
|||
answer += powers_of2; |
|||
accumulator += doublings; |
|||
); |
|||
); |
|||
}; |
|||
egyptian_divrem(dividend, divisor) = |
|||
{ |
|||
local(answer, accumulator, row); |
|||
answer = 0; |
|||
accumulator = 0; |
|||
myrow(1, divisor); |
|||
[answer, dividend - accumulator]; |
|||
} |
|||
divisor=34; |
|||
dividend=580; |
|||
print1(egyptian_divrem(dividend, divisor)); |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
[17, 2] |
|||
</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |