diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-06-19 18:09:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-19 18:09:46 +0100 |
| commit | f6fa009588ba72e94b43350ef772dc9da8e95129 (patch) | |
| tree | 65b8d15d542bb90a3ca68a5dc4f7b258d46a71d0 /challenge-169 | |
| parent | 5ebb5814e1622e184b7f0445e48dd8684e4cff1d (diff) | |
| parent | 710e2793436461c9ad4e1c2dcd0c6e84576d095d (diff) | |
| download | perlweeklychallenge-club-f6fa009588ba72e94b43350ef772dc9da8e95129.tar.gz perlweeklychallenge-club-f6fa009588ba72e94b43350ef772dc9da8e95129.tar.bz2 perlweeklychallenge-club-f6fa009588ba72e94b43350ef772dc9da8e95129.zip | |
Merge pull request #6286 from wambash/challenge-week-169
solutions week 169
Diffstat (limited to 'challenge-169')
| -rw-r--r-- | challenge-169/wambash/raku/ch-1.raku | 25 | ||||
| -rw-r--r-- | challenge-169/wambash/raku/ch-2.raku | 25 |
2 files changed, 50 insertions, 0 deletions
diff --git a/challenge-169/wambash/raku/ch-1.raku b/challenge-169/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..7109be4bee --- /dev/null +++ b/challenge-169/wambash/raku/ch-1.raku @@ -0,0 +1,25 @@ +#!/usr/bin/env raku + +sub brilliant-numbers (UInt $n) { + 10 ** $n ^..^ 10** ($n+1) + andthen .grep: *.is-prime + andthen .cache + andthen |.combinations(2), |($_ Z, $_) + andthen .map: {[*] $_}\ + andthen .sort + andthen .Slip +} + +constant BrilliantNumbers = (0..Inf).map: &brilliant-numbers; + +multi MAIN (Bool :test($)!) { + use Test; + is brilliant-numbers(0), <4 6 9 10 14 15 21 25 35 49>; + is brilliant-numbers(1).head(10), (121, 143, 169, 187, 209, 221, 247, 253, 289, 299); + is BrilliantNumbers.head(20), (4, 6, 9, 10, 14, 15, 21, 25, 35, 49, 121, 143, 169, 187, 209, 221, 247, 253, 289, 299); + done-testing; +} + +multi MAIN (UInt $n=20) { + put BrilliantNumbers.head: $n +} diff --git a/challenge-169/wambash/raku/ch-2.raku b/challenge-169/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..6f70147d33 --- /dev/null +++ b/challenge-169/wambash/raku/ch-2.raku @@ -0,0 +1,25 @@ +#!/usr/bin/env raku +use Prime::Factor; + +sub is-Achilles ($n) { + prime-factors $n + andthen bag $_ + andthen .values.cache + andthen (.all > 1) & (1 == [gcd] $_) + andthen .so +} + +constant Achilles = (2..∞).grep: &is-Achilles; +multi MAIN (Bool :test($)!) { + use Test; + is is-Achilles(72),True; + is is-Achilles(36),False; + is is-Achilles(1568),True; + is is-Achilles(1668),False; + is Achilles.head(20),(72, 108, 200, 288, 392, 432, 500, 648, 675, 800, 864, 968, 972, 1125, 1152, 1323, 1352, 1372, 1568, 1800); + done-testing; +} + +multi MAIN (UInt $n=20) { + put Achilles.head: $n +} |
