From df79660de2080b422303527446886a2c1d398277 Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sat, 24 Apr 2021 22:52:15 +0200 Subject: solutions week 109 --- challenge-109/wambash/raku/ch-1.raku | 21 +++++++++++++++++++++ challenge-109/wambash/raku/ch-2.raku | 20 ++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 challenge-109/wambash/raku/ch-1.raku create mode 100644 challenge-109/wambash/raku/ch-2.raku 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; +} -- cgit