aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark <53903062+andemark@users.noreply.github.com>2021-10-25 11:30:07 +0000
committerMark <53903062+andemark@users.noreply.github.com>2021-10-25 11:30:07 +0000
commit03ae69ae56d77043a61a7a5747eb3fa05da50785 (patch)
tree8d21f2e6f972acc7c04d9e3ea8c03ba7db496a08
parent9af4627df80018091f1bbf86c07ede1eeeb6548f (diff)
downloadperlweeklychallenge-club-03ae69ae56d77043a61a7a5747eb3fa05da50785.tar.gz
perlweeklychallenge-club-03ae69ae56d77043a61a7a5747eb3fa05da50785.tar.bz2
perlweeklychallenge-club-03ae69ae56d77043a61a7a5747eb3fa05da50785.zip
Challenge 136 Solutions (Raku)
-rw-r--r--challenge-136/mark-anderson/raku/ch-1.raku14
-rw-r--r--challenge-136/mark-anderson/raku/ch-2.raku19
2 files changed, 33 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..7fcc297121
--- /dev/null
+++ b/challenge-136/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,14 @@
+#!/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)
+{
+ my $gcd = $m gcd $n;
+ +(log2($gcd).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;
+ }
+}