aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-136/mark-anderson/raku/ch-1.raku13
-rw-r--r--challenge-136/mark-anderson/raku/ch-2.raku19
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-136/mark-anderson/raku/ch-1.raku b/challenge-136/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..59f55c91a0
--- /dev/null
+++ b/challenge-136/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,13 @@
+#!/usr/bin/env raku
+
+use Test;
+plan 3;
+
+is two-friendly(8, 24), 1, 'Example 1';
+is two-friendly(26, 39), 0, 'Example 2';
+is two-friendly(4, 10), 1, 'Example 3';
+
+sub two-friendly($m, $n)
+{
+ +(log2($m gcd $n).narrow ~~ UInt);
+}
diff --git a/challenge-136/mark-anderson/raku/ch-2.raku b/challenge-136/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..dff7f97a72
--- /dev/null
+++ b/challenge-136/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+use Test;
+plan 3;
+
+for 16 => 4, 9 => 2, 15 => 2
+{
+ is +fibonacci-sums(.key), .value, "Example " ~ ++$;
+}
+
+sub fibonacci-sums($n)
+{
+ my $fib := 1, 2, { $^a + $^b } ... { $n - $^a < $^b };
+
+ gather for $fib.combinations.skip
+ {
+ .take if .sum == $n;
+ }
+}