Integer roots: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) m (→{{header|Perl 6}}: generate initial guess numerically) |
|||
Line 615: | Line 615: | ||
<lang perl6>sub integer_root ( Int $p where * >= 2, Int $n --> Int ) { |
<lang perl6>sub integer_root ( Int $p where * >= 2, Int $n --> Int ) { |
||
my Int $d = $p - 1; |
my Int $d = $p - 1; |
||
⚫ | |||
⚫ | |||
my $iterator = { ( $d * $^x + $n div ($^x ** $d) ) div $p }; |
my $iterator = { ( $d * $^x + $n div ($^x ** $d) ) div $p }; |
||
my $endpoint = { $^x ** $p <= $n |
my $endpoint = { $^x ** $p <= $n |
||
and ($^x + 1) ** $p > $n }; |
and ($^x + 1) ** $p > $n }; |
||
return [min] (+$guess, $iterator ... $endpoint)[*-1, *-2]; |
return [min] (+$guess, $iterator ... $endpoint)[*-1, *-2]; |
||
} |
} |