aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-10-04 23:20:00 +0100
committerGitHub <noreply@github.com>2021-10-04 23:20:00 +0100
commitc46d6d684a660bec0fc7b7223165356ea27ace3c (patch)
tree2cf67fa200a0e073147f9201dec5402f3358e71a
parent7df6b4a2aae226d1e4f4335b5137df20b3a9e065 (diff)
parent753b5718d1347ac0342e0c4b0e28f7e00fb9fb06 (diff)
downloadperlweeklychallenge-club-c46d6d684a660bec0fc7b7223165356ea27ace3c.tar.gz
perlweeklychallenge-club-c46d6d684a660bec0fc7b7223165356ea27ace3c.tar.bz2
perlweeklychallenge-club-c46d6d684a660bec0fc7b7223165356ea27ace3c.zip
Merge pull request #4968 from Kaiepi/challenge-133
Add Ben Davies' Raku solutions for challenge 133
-rw-r--r--challenge-133/ben-davies/raku/ch-1.raku4
-rw-r--r--challenge-133/ben-davies/raku/ch-2.raku13
2 files changed, 17 insertions, 0 deletions
diff --git a/challenge-133/ben-davies/raku/ch-1.raku b/challenge-133/ben-davies/raku/ch-1.raku
new file mode 100644
index 0000000000..98fd70d0ee
--- /dev/null
+++ b/challenge-133/ben-davies/raku/ch-1.raku
@@ -0,0 +1,4 @@
+use v6;
+unit sub MAIN(Int:D $n where * > 0) {
+ say (1..$n).first({ $^x == $n div $^x });
+}
diff --git a/challenge-133/ben-davies/raku/ch-2.raku b/challenge-133/ben-davies/raku/ch-2.raku
new file mode 100644
index 0000000000..ba862a20e4
--- /dev/null
+++ b/challenge-133/ben-davies/raku/ch-2.raku
@@ -0,0 +1,13 @@
+use v6;
+unit sub MAIN() {
+ .say for (1..*).hyper.grep(*.&is-smith-number: 10).head(10);
+}
+sub is-smith-number(Int:D $x, Int:D $base) {
+ not $x.is-prime and $x.&digits($base).sum == $x.&prime-factors».&digits($base).flat.sum
+}
+sub digits(Int:D $x, Int:D $base) {
+ $x.polymod($base xx $x.log: $base).reverse
+}
+sub prime-factors(Int:D $x is copy) {
+ gather $x div= take (2..$x).grep(*.is-prime).first($x %% *) while $x > 1
+}