aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-12-01 18:15:02 +0000
committerGitHub <noreply@github.com>2021-12-01 18:15:02 +0000
commit2a8c060594d92def54f014724e9b9d09a5d24265 (patch)
treeccf8235a580d00296b8fc2c4805f543349d52ec0
parent64dfae2f3fc3dcb409fa213012b9f3da1010519e (diff)
parentae5ffc0af2fd30754b16536d506605a3c55255de (diff)
downloadperlweeklychallenge-club-2a8c060594d92def54f014724e9b9d09a5d24265.tar.gz
perlweeklychallenge-club-2a8c060594d92def54f014724e9b9d09a5d24265.tar.bz2
perlweeklychallenge-club-2a8c060594d92def54f014724e9b9d09a5d24265.zip
Merge pull request #5306 from andemark/branch-for-challenge-141
Challenge 141 Solutions (Raku)
-rw-r--r--challenge-141/mark-anderson/raku/ch-1.raku16
-rw-r--r--challenge-141/mark-anderson/raku/ch-2.raku18
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-141/mark-anderson/raku/ch-1.raku b/challenge-141/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..5a65a0f2e3
--- /dev/null
+++ b/challenge-141/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/env raku
+
+use Prime::Factor;
+use Test;
+plan 2;
+
+is-deeply number-divisors(8)[^10],
+ (24, 30, 40, 42, 54, 56, 66, 70, 78, 88), 'example 1';
+
+is-deeply number-divisors(8)[^10000].tail(5),
+ (45626, 45627, 45638, 45642, 45646), 'hyper ftw!';
+
+sub number-divisors(\n)
+{
+ (^Inf).hyper.grep({ divisors($_) == n });
+}
diff --git a/challenge-141/mark-anderson/raku/ch-2.raku b/challenge-141/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..b0b3b69fe7
--- /dev/null
+++ b/challenge-141/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/env raku
+
+use Test;
+plan 4;
+
+is like-numbers(1234, 2), 9, '1234, 2 = (2 4 12 14 24 34 124 134 234)';
+is like-numbers( 768, 4), 3, ' 768, 4 = (8 76 68)';
+is like-numbers(1008, 2), 6, '1008, 2 = (0 8 10 18 100 108)';
+is like-numbers(7777, 7), 3, '7777, 7 = (7 77 777)';
+
+sub like-numbers($m is copy, \n)
+{
+ $m .= comb;
+ $m.combinations(1..^+$m).map(+*.join)
+ .grep(* %% n)
+ .unique
+ .Int;
+}