diff options
| author | Ben Davies <kaiepi@outlook.com> | 2021-10-04 18:58:00 -0300 |
|---|---|---|
| committer | Ben Davies <kaiepi@outlook.com> | 2021-10-04 19:07:57 -0300 |
| commit | 753b5718d1347ac0342e0c4b0e28f7e00fb9fb06 (patch) | |
| tree | 90b3d57fad5a2b56bdb205b870c75fddf602bb30 | |
| parent | 20ffd7b7c80e195548325ace22fe92f2a499984c (diff) | |
| download | perlweeklychallenge-club-753b5718d1347ac0342e0c4b0e28f7e00fb9fb06.tar.gz perlweeklychallenge-club-753b5718d1347ac0342e0c4b0e28f7e00fb9fb06.tar.bz2 perlweeklychallenge-club-753b5718d1347ac0342e0c4b0e28f7e00fb9fb06.zip | |
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 +} |
