diff options
| author | Mark <53903062+andemark@users.noreply.github.com> | 2021-10-25 11:30:07 +0000 |
|---|---|---|
| committer | Mark <53903062+andemark@users.noreply.github.com> | 2021-10-25 11:30:07 +0000 |
| commit | 03ae69ae56d77043a61a7a5747eb3fa05da50785 (patch) | |
| tree | 8d21f2e6f972acc7c04d9e3ea8c03ba7db496a08 | |
| parent | 9af4627df80018091f1bbf86c07ede1eeeb6548f (diff) | |
| download | perlweeklychallenge-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.raku | 14 | ||||
| -rw-r--r-- | challenge-136/mark-anderson/raku/ch-2.raku | 19 |
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; + } +} |
