diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-04-25 02:13:16 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-25 02:13:16 +0100 |
| commit | 4ef7bf095a7aaee1ae567affa36a4328d6f37aa7 (patch) | |
| tree | 351a0226c896adcb7876a9e78bc648997fe5270f | |
| parent | acb2874f96cc12d89f8c742e17aad39c00873a68 (diff) | |
| parent | df79660de2080b422303527446886a2c1d398277 (diff) | |
| download | perlweeklychallenge-club-4ef7bf095a7aaee1ae567affa36a4328d6f37aa7.tar.gz perlweeklychallenge-club-4ef7bf095a7aaee1ae567affa36a4328d6f37aa7.tar.bz2 perlweeklychallenge-club-4ef7bf095a7aaee1ae567affa36a4328d6f37aa7.zip | |
Merge pull request #3946 from wambash/challenge-week-109
solutions week 109
| -rw-r--r-- | challenge-109/wambash/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-109/wambash/raku/ch-2.raku | 20 |
2 files changed, 41 insertions, 0 deletions
diff --git a/challenge-109/wambash/raku/ch-1.raku b/challenge-109/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..d8e7aa8bfe --- /dev/null +++ b/challenge-109/wambash/raku/ch-1.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +sub chowla-number ( $n ) { + 2 .. $n / 2 + andthen .grep: $n %% * + andthen .sum +} + +constant @chowla-numbers = (1 .. ∞).map: &chowla-number; + +multi MAIN (Bool :test($)!) { + use Test; + is @chowla-numbers.head(20), (0, 0, 0, 2, 0, 5, 0, 6, 3, 7, 0, 15, 0, 9, 8, 14, 0, 20, 0, 21); + my $big-prime = (100_000 .. ∞).first: *.is-prime; + is chowla-number($big-prime), 0; + done-testing; +} + +multi MAIN ($n=20) { + put @chowla-numbers.head($n) +} diff --git a/challenge-109/wambash/raku/ch-2.raku b/challenge-109/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..d8380fdb4a --- /dev/null +++ b/challenge-109/wambash/raku/ch-2.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env raku + +sub four-squares-puzzle ( +@n ) { + @n.permutations + andthen .pick: * + andthen .map: *.rotor: 2 => -1, 3 => -1, 3 => -1, 2 => -1 + andthen .first: { [==] .cache.map: *.sum } +} + + +multi MAIN ( +@n ) { + say four-squares-puzzle @n +} + +multi MAIN (:test($)!) { + use Test; + is four-squares-puzzle(1..7).all.sum, 9|10|11 ; + is four-squares-puzzle(2,-2,10,-8, 30, -22,+22).all.sum, 0 ; + done-testing; +} |
