diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-10-04 23:20:00 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-04 23:20:00 +0100 |
| commit | c46d6d684a660bec0fc7b7223165356ea27ace3c (patch) | |
| tree | 2cf67fa200a0e073147f9201dec5402f3358e71a | |
| parent | 7df6b4a2aae226d1e4f4335b5137df20b3a9e065 (diff) | |
| parent | 753b5718d1347ac0342e0c4b0e28f7e00fb9fb06 (diff) | |
| download | perlweeklychallenge-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.raku | 4 | ||||
| -rw-r--r-- | challenge-133/ben-davies/raku/ch-2.raku | 13 |
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 +} |
