aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-10-05 22:32:46 +0100
committerGitHub <noreply@github.com>2021-10-05 22:32:46 +0100
commit934b4cb3c83f10b37568229cc7c0ea6f83db3174 (patch)
treeec5942a240eb2f80a0b14560188abbbb9bc84911
parentc22bb4307d884ce2e4681f25f3cbb759f9f69263 (diff)
parent3183f0b695018c7450e8c442b2404595c895efb1 (diff)
downloadperlweeklychallenge-club-934b4cb3c83f10b37568229cc7c0ea6f83db3174.tar.gz
perlweeklychallenge-club-934b4cb3c83f10b37568229cc7c0ea6f83db3174.tar.bz2
perlweeklychallenge-club-934b4cb3c83f10b37568229cc7c0ea6f83db3174.zip
Merge pull request #4976 from Kaiepi/challenge-133
Revise Ben Davies' challenge 133 task 1 solution
-rw-r--r--challenge-133/ben-davies/raku/ch-1.raku10
1 files changed, 9 insertions, 1 deletions
diff --git a/challenge-133/ben-davies/raku/ch-1.raku b/challenge-133/ben-davies/raku/ch-1.raku
index 98fd70d0ee..44ce0d2ba2 100644
--- a/challenge-133/ben-davies/raku/ch-1.raku
+++ b/challenge-133/ben-davies/raku/ch-1.raku
@@ -1,4 +1,12 @@
use v6;
unit sub MAIN(Int:D $n where * > 0) {
- say (1..$n).first({ $^x == $n div $^x });
+ # Newton's method. Adapted from Algorithm 1.13 of:
+ # https://maths-people.anu.edu.au/~brent/pd/mca-cup-0.5.9.pdf
+ my $x;
+ my $L = $n;
+ repeat {
+ $x = $L;
+ $L = ($x + $n div $x) div 2;
+ } until $L >= $x;
+ say $x;
}