diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-06-13 18:44:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-13 18:44:36 +0100 |
| commit | 89865cbe469838e90a4a6c1c9822915e8d71bf0b (patch) | |
| tree | 8ae2c3b8ba8124565816aa286273ef009d8c55f0 | |
| parent | 62e561c0f4c7ab0a1279989ff1b43523ef31e288 (diff) | |
| parent | f6e559729ecadd60d04cc70982e106c1bfe95bfa (diff) | |
| download | perlweeklychallenge-club-89865cbe469838e90a4a6c1c9822915e8d71bf0b.tar.gz perlweeklychallenge-club-89865cbe469838e90a4a6c1c9822915e8d71bf0b.tar.bz2 perlweeklychallenge-club-89865cbe469838e90a4a6c1c9822915e8d71bf0b.zip | |
Merge pull request #6257 from andemark/branch-for-challenge-169
Challenge 169 Solutions (Raku)
| -rw-r--r-- | challenge-169/mark-anderson/raku/ch-1.raku | 17 | ||||
| -rw-r--r-- | challenge-169/mark-anderson/raku/ch-2.raku | 29 |
2 files changed, 46 insertions, 0 deletions
diff --git a/challenge-169/mark-anderson/raku/ch-1.raku b/challenge-169/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..a544270be7 --- /dev/null +++ b/challenge-169/mark-anderson/raku/ch-1.raku @@ -0,0 +1,17 @@ +#!/usr/bin/env raku + +use Test; + +is-deeply brilliant[^20], (4, 6, 9, 10, 14, 15, 21, 25, 35, 49, 121, 143, 169, 187, 209, 221, 247, 253, 289, 299); + +is-deeply brilliant[990..999], (50429, 50467, 50573, 50621, 50629, 50657, 50689, 50693, 50737, 50759); + +is-deeply brilliant[9990..9999], (694151, 694691, 694921, 694931, 695027, 695273, 695399, 695531, 695683, 696191); + +multi brilliant { (1, 10, 100...*).map(&brilliant).flat } + +multi brilliant(\n) +{ + my \primes = (n..^n*10).grep(&is-prime).List; + sort unique primes X* primes +} diff --git a/challenge-169/mark-anderson/raku/ch-2.raku b/challenge-169/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..ea4548a0f4 --- /dev/null +++ b/challenge-169/mark-anderson/raku/ch-2.raku @@ -0,0 +1,29 @@ +#!/usr/bin/env raku + +use Prime::Factor; +use Test; + +is-deeply Achilles[^100], + (72, 108, 200, 288, 392, 432, 500, 648, 675, 800, + 864, 968, 972, 1125, 1152, 1323, 1352, 1372, 1568, 1800, + 1944, 2000, 2312, 2592, 2700, 2888, 3087, 3200, 3267, 3456, + 3528, 3872, 3888, 4000, 4232, 4500, 4563, 4608, 5000, 5292, + 5324, 5400, 5408, 5488, 6075, 6125, 6272, 6728, 6912, 7200, + 7688, 7803, 8575, 8712, 8748, 8788, 9000, 9248, 9747, 9800, + 10125, 10368, 10584, 10800, 10952, 10976, 11552, 11907, 11979, 12168, + 12348, 12500, 12800, 13068, 13448, 13500, 14112, 14283, 14792, 15125, + 15488, 15552, 16000, 16200, 16875, 16928, 17496, 17672, 18000, 18252, + 18432, 19208, 19652, 19773, 20000, 20808, 21125, 21168, 21296, 21600); + +sub Achilles +{ + sub Achilles(\n) + { + my \pf = prime-factors(n).List; + my \powerful = so n %% all pf.squish >>**>> 2; + my \imperfect = ([gcd] pf.Bag.values) == 1; + powerful and imperfect + } + + (2..*).hyper.grep(&Achilles) +} |
