Anonymous user
Egyptian division: Difference between revisions
→{{header|Perl}}: Fixes bug, *much* faster.
(Add Factor example) |
(→{{header|Perl}}: Fixes bug, *much* faster.) |
||
Line 1,397:
<lang perl>sub egyptian_divmod {
my($dividend, $divisor) = @_;
die "Invalid divisor" if $divisor <= 0;
push @table, 2*$table[-1] while $table[-1] <= $dividend;
my $accumulator = 0;
for my $k (
next unless $dividend >= $table
$accumulator += 1 << $k;
$dividend -= $table
}
$accumulator, $dividend;
|