diff options
| -rw-r--r-- | challenge-136/mark-anderson/raku/ch-1.raku | 13 | ||||
| -rw-r--r-- | challenge-136/mark-anderson/raku/ch-2.raku | 19 |
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; + } +} |
