aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-082/mark-anderson/raku/ch-1.p612
-rw-r--r--challenge-082/mark-anderson/raku/ch-2.p621
-rw-r--r--challenge-082/mark-anderson/raku/terms.json1
3 files changed, 34 insertions, 0 deletions
diff --git a/challenge-082/mark-anderson/raku/ch-1.p6 b/challenge-082/mark-anderson/raku/ch-1.p6
new file mode 100644
index 0000000000..42e1fe2b36
--- /dev/null
+++ b/challenge-082/mark-anderson/raku/ch-1.p6
@@ -0,0 +1,12 @@
+unit sub MAIN(UInt $m, UInt $n);
+
+say common-factors($m, $n);
+
+sub common-factors($m, $n) {
+
+ sub factor($i) {
+ (1..($i div 2)).grep($i %% *);
+ }
+
+ (factor($m) (&) factor($n)).keys.sort.join(", ").List;
+}
diff --git a/challenge-082/mark-anderson/raku/ch-2.p6 b/challenge-082/mark-anderson/raku/ch-2.p6
new file mode 100644
index 0000000000..1d67d02a79
--- /dev/null
+++ b/challenge-082/mark-anderson/raku/ch-2.p6
@@ -0,0 +1,21 @@
+use JSON::Fast;
+
+subset Tiny-Str of Str where .chars < 10;
+
+#| A.chars < 10, B.chars < 10, C.chars == A.chars + B.chars
+unit sub MAIN(Tiny-Str $A, Tiny-Str $B, $C where .chars == $A.chars + $B.chars);
+
+my @terms := |from-json "terms.json".IO.slurp;
+
+say interleaved($A, $B, $C);
+
+sub interleaved($S1, $S2, $C) {
+ for ($S1, $S2), ($S2, $S1) -> ($A, $B) {
+ for @terms[$A.chars].Array X @terms[$B.chars].Array -> (@A, @B) {
+ return 1 if roundrobin($A.comb.rotor(@A), $B.comb.rotor(@B))
+ .flat.join eq $C;
+ }
+ }
+
+ return 0;
+}
diff --git a/challenge-082/mark-anderson/raku/terms.json b/challenge-082/mark-anderson/raku/terms.json
new file mode 100644
index 0000000000..ca62128af6
--- /dev/null
+++ b/challenge-082/mark-anderson/raku/terms.json
@@ -0,0 +1 @@
+[[[0]],[[1]],[[1,1],[2]],[[1,1,1],[3],[1,2],[2,1]],[[1,1,1,1],[2,2],[4],[1,3],[3,1],[1,1,2],[1,2,1],[2,1,1]],[[1,1,1,1,1],[5],[1,2,2],[2,1,2],[2,2,1],[1,4],[4,1],[1,1,3],[1,3,1],[3,1,1],[1,1,1,2],[1,1,2,1],[1,2,1,1],[2,1,1,1],[2,3],[3,2]],[[1,1,1,1,1,1],[2,2,2],[3,3],[6],[1,5],[5,1],[1,1,2,2],[1,2,1,2],[1,2,2,1],[2,1,1,2],[2,1,2,1],[2,2,1,1],[1,1,4],[1,4,1],[4,1,1],[1,1,1,3],[1,1,3,1],[1,3,1,1],[3,1,1,1],[1,1,1,1,2],[1,1,1,2,1],[1,1,2,1,1],[1,2,1,1,1],[2,1,1,1,1],[2,4],[4,2],[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]],[[1,1,1,1,1,1,1],[7],[1,2,2,2],[2,1,2,2],[2,2,1,2],[2,2,2,1],[1,3,3],[3,1,3],[3,3,1],[1,6],[6,1],[1,1,5],[1,5,1],[5,1,1],[1,1,1,2,2],[1,1,2,1,2],[1,1,2,2,1],[1,2,1,1,2],[1,2,1,2,1],[1,2,2,1,1],[2,1,1,1,2],[2,1,1,2,1],[2,1,2,1,1],[2,2,1,1,1],[1,1,1,4],[1,1,4,1],[1,4,1,1],[4,1,1,1],[1,1,1,1,3],[1,1,1,3,1],[1,1,3,1,1],[1,3,1,1,1],[3,1,1,1,1],[1,1,1,1,1,2],[1,1,1,1,2,1],[1,1,1,2,1,1],[1,1,2,1,1,1],[1,2,1,1,1,1],[2,1,1,1,1,1],[2,5],[5,2],[2,2,3],[2,3,2],[3,2,2],[3,4],[4,3],[1,2,4],[1,4,2],[2,1,4],[2,4,1],[4,1,2],[4,2,1],[1,1,2,3],[1,1,3,2],[1,2,1,3],[1,2,3,1],[1,3,1,2],[1,3,2,1],[2,1,1,3],[2,1,3,1],[2,3,1,1],[3,1,1,2],[3,1,2,1],[3,2,1,1]],[[1,1,1,1,1,1,1,1],[2,2,2,2],[4,4],[8],[1,7],[7,1],[1,1,2,2,2],[1,2,1,2,2],[1,2,2,1,2],[1,2,2,2,1],[2,1,1,2,2],[2,1,2,1,2],[2,1,2,2,1],[2,2,1,1,2],[2,2,1,2,1],[2,2,2,1,1],[1,1,3,3],[1,3,1,3],[1,3,3,1],[3,1,1,3],[3,1,3,1],[3,3,1,1],[1,1,6],[1,6,1],[6,1,1],[1,1,1,5],[1,1,5,1],[1,5,1,1],[5,1,1,1],[1,1,1,1,2,2],[1,1,1,2,1,2],[1,1,1,2,2,1],[1,1,2,1,1,2],[1,1,2,1,2,1],[1,1,2,2,1,1],[1,2,1,1,1,2],[1,2,1,1,2,1],[1,2,1,2,1,1],[1,2,2,1,1,1],[2,1,1,1,1,2],[2,1,1,1,2,1],[2,1,1,2,1,1],[2,1,2,1,1,1],[2,2,1,1,1,1],[1,1,1,1,4],[1,1,1,4,1],[1,1,4,1,1],[1,4,1,1,1],[4,1,1,1,1],[1,1,1,1,1,3],[1,1,1,1,3,1],[1,1,1,3,1,1],[1,1,3,1,1,1],[1,3,1,1,1,1],[3,1,1,1,1,1],[1,1,1,1,1,1,2],[1,1,1,1,1,2,1],[1,1,1,1,2,1,1],[1,1,1,2,1,1,1],[1,1,2,1,1,1,1],[1,2,1,1,1,1,1],[2,1,1,1,1,1,1],[2,3,3],[3,2,3],[3,3,2],[2,6],[6,2],[2,2,4],[2,4,2],[4,2,2],[3,5],[5,3],[1,2,5],[1,5,2],[2,1,5],[2,5,1],[5,1,2],[5,2,1],[1,2,2,3],[1,2,3,2],[1,3,2,2],[2,1,2,3],[2,1,3,2],[2,2,1,3],[2,2,3,1],[2,3,1,2],[2,3,2,1],[3,1,2,2],[3,2,1,2],[3,2,2,1],[1,3,4],[1,4,3],[3,1,4],[3,4,1],[4,1,3],[4,3,1],[1,1,2,4],[1,1,4,2],[1,2,1,4],[1,2,4,1],[1,4,1,2],[1,4,2,1],[2,1,1,4],[2,1,4,1],[2,4,1,1],[4,1,1,2],[4,1,2,1],[4,2,1,1],[1,1,1,2,3],[1,1,1,3,2],[1,1,2,1,3],[1,1,2,3,1],[1,1,3,1,2],[1,1,3,2,1],[1,2,1,1,3],[1,2,1,3,1],[1,2,3,1,1],[1,3,1,1,2],[1,3,1,2,1],[1,3,2,1,1],[2,1,1,1,3],[2,1,1,3,1],[2,1,3,1,1],[2,3,1,1,1],[3,1,1,1,2],[3,1,1,2,1],[3,1,2,1,1],[3,2,1,1,1]],[[1,1,1,1,1,1,1,1,1],[3,3,3],[9],[1,2,2,2,2],[2,1,2,2,2],[2,2,1,2,2],[2,2,2,1,2],[2,2,2,2,1],[1,4,4],[4,1,4],[4,4,1],[1,8],[8,1],[1,1,7],[1,7,1],[7,1,1],[1,1,1,2,2,2],[1,1,2,1,2,2],[1,1,2,2,1,2],[1,1,2,2,2,1],[1,2,1,1,2,2],[1,2,1,2,1,2],[1,2,1,2,2,1],[1,2,2,1,1,2],[1,2,2,1,2,1],[1,2,2,2,1,1],[2,1,1,1,2,2],[2,1,1,2,1,2],[2,1,1,2,2,1],[2,1,2,1,1,2],[2,1,2,1,2,1],[2,1,2,2,1,1],[2,2,1,1,1,2],[2,2,1,1,2,1],[2,2,1,2,1,1],[2,2,2,1,1,1],[1,1,1,3,3],[1,1,3,1,3],[1,1,3,3,1],[1,3,1,1,3],[1,3,1,3,1],[1,3,3,1,1],[3,1,1,1,3],[3,1,1,3,1],[3,1,3,1,1],[3,3,1,1,1],[1,1,1,6],[1,1,6,1],[1,6,1,1],[6,1,1,1],[1,1,1,1,5],[1,1,1,5,1],[1,1,5,1,1],[1,5,1,1,1],[5,1,1,1,1],[1,1,1,1,1,2,2],[1,1,1,1,2,1,2],[1,1,1,1,2,2,1],[1,1,1,2,1,1,2],[1,1,1,2,1,2,1],[1,1,1,2,2,1,1],[1,1,2,1,1,1,2],[1,1,2,1,1,2,1],[1,1,2,1,2,1,1],[1,1,2,2,1,1,1],[1,2,1,1,1,1,2],[1,2,1,1,1,2,1],[1,2,1,1,2,1,1],[1,2,1,2,1,1,1],[1,2,2,1,1,1,1],[2,1,1,1,1,1,2],[2,1,1,1,1,2,1],[2,1,1,1,2,1,1],[2,1,1,2,1,1,1],[2,1,2,1,1,1,1],[2,2,1,1,1,1,1],[1,1,1,1,1,4],[1,1,1,1,4,1],[1,1,1,4,1,1],[1,1,4,1,1,1],[1,4,1,1,1,1],[4,1,1,1,1,1],[1,1,1,1,1,1,3],[1,1,1,1,1,3,1],[1,1,1,1,3,1,1],[1,1,1,3,1,1,1],[1,1,3,1,1,1,1],[1,3,1,1,1,1,1],[3,1,1,1,1,1,1],[1,1,1,1,1,1,1,2],[1,1,1,1,1,1,2,1],[1,1,1,1,1,2,1,1],[1,1,1,1,2,1,1,1],[1,1,1,2,1,1,1,1],[1,1,2,1,1,1,1,1],[1,2,1,1,1,1,1,1],[2,1,1,1,1,1,1,1],[2,7],[7,2],[2,2,5],[2,5,2],[5,2,2],[2,2,2,3],[2,2,3,2],[2,3,2,2],[3,2,2,2],[3,6],[6,3],[4,5],[5,4],[1,2,3,3],[1,3,2,3],[1,3,3,2],[2,1,3,3],[2,3,1,3],[2,3,3,1],[3,1,2,3],[3,1,3,2],[3,2,1,3],[3,2,3,1],[3,3,1,2],[3,3,2,1],[1,2,6],[1,6,2],[2,1,6],[2,6,1],[6,1,2],[6,2,1],[1,2,2,4],[1,2,4,2],[1,4,2,2],[2,1,2,4],[2,1,4,2],[2,2,1,4],[2,2,4,1],[2,4,1,2],[2,4,2,1],[4,1,2,2],[4,2,1,2],[4,2,2,1],[1,3,5],[1,5,3],[3,1,5],[3,5,1],[5,1,3],[5,3,1],[1,1,2,5],[1,1,5,2],[1,2,1,5],[1,2,5,1],[1,5,1,2],[1,5,2,1],[2,1,1,5],[2,1,5,1],[2,5,1,1],[5,1,1,2],[5,1,2,1],[5,2,1,1],[1,1,2,2,3],[1,1,2,3,2],[1,1,3,2,2],[1,2,1,2,3],[1,2,1,3,2],[1,2,2,1,3],[1,2,2,3,1],[1,2,3,1,2],[1,2,3,2,1],[1,3,1,2,2],[1,3,2,1,2],[1,3,2,2,1],[2,1,1,2,3],[2,1,1,3,2],[2,1,2,1,3],[2,1,2,3,1],[2,1,3,1,2],[2,1,3,2,1],[2,2,1,1,3],[2,2,1,3,1],[2,2,3,1,1],[2,3,1,1,2],[2,3,1,2,1],[2,3,2,1,1],[3,1,1,2,2],[3,1,2,1,2],[3,1,2,2,1],[3,2,1,1,2],[3,2,1,2,1],[3,2,2,1,1],[1,1,3,4],[1,1,4,3],[1,3,1,4],[1,3,4,1],[1,4,1,3],[1,4,3,1],[3,1,1,4],[3,1,4,1],[3,4,1,1],[4,1,1,3],[4,1,3,1],[4,3,1,1],[1,1,1,2,4],[1,1,1,4,2],[1,1,2,1,4],[1,1,2,4,1],[1,1,4,1,2],[1,1,4,2,1],[1,2,1,1,4],[1,2,1,4,1],[1,2,4,1,1],[1,4,1,1,2],[1,4,1,2,1],[1,4,2,1,1],[2,1,1,1,4],[2,1,1,4,1],[2,1,4,1,1],[2,4,1,1,1],[4,1,1,1,2],[4,1,1,2,1],[4,1,2,1,1],[4,2,1,1,1],[1,1,1,1,2,3],[1,1,1,1,3,2],[1,1,1,2,1,3],[1,1,1,2,3,1],[1,1,1,3,1,2],[1,1,1,3,2,1],[1,1,2,1,1,3],[1,1,2,1,3,1],[1,1,2,3,1,1],[1,1,3,1,1,2],[1,1,3,1,2,1],[1,1,3,2,1,1],[1,2,1,1,1,3],[1,2,1,1,3,1],[1,2,1,3,1,1],[1,2,3,1,1,1],[1,3,1,1,1,2],[1,3,1,1,2,1],[1,3,1,2,1,1],[1,3,2,1,1,1],[2,1,1,1,1,3],[2,1,1,1,3,1],[2,1,1,3,1,1],[2,1,3,1,1,1],[2,3,1,1,1,1],[3,1,1,1,1,2],[3,1,1,1,2,1],[3,1,1,2,1,1],[3,1,2,1,1,1],[3,2,1,1,1,1],[2,3,4],[2,4,3],[3,2,4],[3,4,2],[4,2,3],[4,3,2]]]