aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-06-13 18:44:36 +0100
committerGitHub <noreply@github.com>2022-06-13 18:44:36 +0100
commit89865cbe469838e90a4a6c1c9822915e8d71bf0b (patch)
tree8ae2c3b8ba8124565816aa286273ef009d8c55f0
parent62e561c0f4c7ab0a1279989ff1b43523ef31e288 (diff)
parentf6e559729ecadd60d04cc70982e106c1bfe95bfa (diff)
downloadperlweeklychallenge-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.raku17
-rw-r--r--challenge-169/mark-anderson/raku/ch-2.raku29
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)
+}