diff options
| author | Humberto Massa <humbertomassa@gmail.com> | 2022-11-14 14:17:24 -0300 |
|---|---|---|
| committer | Humberto Massa <humbertomassa@gmail.com> | 2022-11-14 14:17:24 -0300 |
| commit | 1946d28ba075c5ba45fc0cd36bf3ae0ee702fc59 (patch) | |
| tree | 0eca0190ef5751d37ed6c0a81e4f7fadad4de037 | |
| parent | 377a415bb53d1ed0b16b70d190bb444241216036 (diff) | |
| download | perlweeklychallenge-club-1946d28ba075c5ba45fc0cd36bf3ae0ee702fc59.tar.gz perlweeklychallenge-club-1946d28ba075c5ba45fc0cd36bf3ae0ee702fc59.tar.bz2 perlweeklychallenge-club-1946d28ba075c5ba45fc0cd36bf3ae0ee702fc59.zip | |
my solutions to challenge 191
| -rw-r--r-- | challenge-191/massa/raku/ch-1.raku | 34 | ||||
| -rw-r--r-- | challenge-191/massa/raku/ch-2.raku | 43 |
2 files changed, 77 insertions, 0 deletions
diff --git a/challenge-191/massa/raku/ch-1.raku b/challenge-191/massa/raku/ch-1.raku new file mode 100644 index 0000000000..feed9b8b02 --- /dev/null +++ b/challenge-191/massa/raku/ch-1.raku @@ -0,0 +1,34 @@ + + +#!/usr/bin/env raku + +=begin pod + +Week 191: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-191 + +Task #1: Twice Largest + + You are given list of integers, @list. + + Write a script to find out whether the largest item in the list is at least + twice as large as each of the other items. + +=end pod + +use Test; + +is False, twice-largest <1 2 3 4>; +is True, twice-largest <1 2 0 5>; +is True, twice-largest <2 6 3 1>; +is False, twice-largest <4 5 2 3>; + +done-testing; + +sub twice-largest(@list) { + my @li = @list».Int.sort(-*); + [&&] @li[0] X≥ @li[1..*].map(2 × *) +} + + diff --git a/challenge-191/massa/raku/ch-2.raku b/challenge-191/massa/raku/ch-2.raku new file mode 100644 index 0000000000..9bfe7b51a8 --- /dev/null +++ b/challenge-191/massa/raku/ch-2.raku @@ -0,0 +1,43 @@ + + +#!/usr/bin/env raku + +=begin pod + +Week 191: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-191 + +Task #2: Cute List + + You are given an integer, 0 < $n <= 15. + + Write a script to find the number of orderings of numbers that form a cute list. + + With an input @list = (1, 2, 3, .. $n) for positive integer $n, an ordering of @list is cute if for every entry, indexed with a base of 1, either + +=begin code + + 1) $list[$i] is evenly divisible by $i + or + 2) $i is evenly divisible by $list[$i] + +=end code + +=end pod + +use Test; + +is 2, cute-list 2; +is 3, cute-list 3; +is 8, cute-list 4; + +done-testing; + +subset Valid of Int where 0 < * ≤ 15; + +sub cute-list(Valid \n) { + + (1 .. n).permutations.grep: -> @list { + @list.pairs.map({ (.key + 1) %% .value || .value %% (.key + 1) }).all.so + } +} |
