Greedy algorithm for Egyptian fractions: Difference between revisions

→‎{{header|Perl 6}}: task completion
(→‎{{header|Perl 6}}: oops, one task requirement is still missing)
(→‎{{header|Perl 6}}: task completion)
Line 34:
 
=={{header|Perl 6}}==
{{incomplete}}
<lang perl6>role Egyptian {
method gist {
Line 44 ⟶ 43:
my ($x, $y) = self.nude;
$x %= $y;
gather {($x, $y) =
($x, $y) = (-$y) % $x, $y * take ($y / $x).ceiling;
while $x {;
take my $ceiling = ($y / $x).ceiling;
($x, $y) = (-$y) % $x, $y*$ceiling;
}
}
}
}
 
say .nude.join('/'), " = ", $_ but Egyptian for 43/48, 5/121, 2014/59;
 
for *.denominators.elems, *.denominators.max -> $by {
say .nude.join("/"), " = ", $_ given
max :by(*.denominators.elems),
max :$by, state @ =
grep * < 1,
map {$_ but Egyptian},
((2 .. 99) X/ (2 .. 99));</lang>
}</lang>
{{out}}
<pre>43/48 = 1/2 + 1/3 + 1/16
5/121 = 1/25 + 1/757 + 1/763309 + 1/873960180913 + 1/1527612795642093418846225
2014/59 = [34] + 1/8 + 1/95 + 1/14947 + 1/670223480
8/97 = 1/13 + 1/181 + 1/38041 + 1/1736503177 + 1/3769304102927363485 + 1/18943537893793408504192074528154430149 + 1/538286441900380211365817285104907086347439746130226973253778132494225813153 + 1/579504587067542801713103191859918608251030291952195423583529357653899418686342360361798689053273749372615043661810228371898539583862011424993909789665
8/97</pre>
8/97 = 1/13 + 1/181 + 1/38041 + 1/1736503177 + 1/3769304102927363485 + 1/18943537893793408504192074528154430149 + 1/538286441900380211365817285104907086347439746130226973253778132494225813153 + 1/579504587067542801713103191859918608251030291952195423583529357653899418686342360361798689053273749372615043661810228371898539583862011424993909789665</pre>
 
=={{header|REXX}}==
1,934

edits