From 1946d28ba075c5ba45fc0cd36bf3ae0ee702fc59 Mon Sep 17 00:00:00 2001 From: Humberto Massa Date: Mon, 14 Nov 2022 14:17:24 -0300 Subject: my solutions to challenge 191 --- challenge-191/massa/raku/ch-1.raku | 34 ++++++++++++++++++++++++++++++ challenge-191/massa/raku/ch-2.raku | 43 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 challenge-191/massa/raku/ch-1.raku create mode 100644 challenge-191/massa/raku/ch-2.raku 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 + } +} -- cgit