diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2024-01-21 21:13:03 +0100 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2024-01-21 21:13:03 +0100 |
| commit | 8020fb491de5f4c67edf067733151d0b0bc41859 (patch) | |
| tree | 433acef43a9e1081ba811817b55b35fdc1aff732 /challenge-252 | |
| parent | 4e45e7ef6d371df4c851b81af497b0146497a7e2 (diff) | |
| download | perlweeklychallenge-club-8020fb491de5f4c67edf067733151d0b0bc41859.tar.gz perlweeklychallenge-club-8020fb491de5f4c67edf067733151d0b0bc41859.tar.bz2 perlweeklychallenge-club-8020fb491de5f4c67edf067733151d0b0bc41859.zip | |
solution week 252-1
Diffstat (limited to 'challenge-252')
| -rw-r--r-- | challenge-252/wambash/raku/ch-1.raku | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-252/wambash/raku/ch-1.raku b/challenge-252/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..146087b399 --- /dev/null +++ b/challenge-252/wambash/raku/ch-1.raku @@ -0,0 +1,34 @@ +#!/usr/bin/env raku +use Prime::Factor; + +sub specal-numbers (+@ints) { + my $size = @ints.elems; + + 1..* Z=> @ints + andthen .grep: $size %% *.key + andthen .map: *.value² + andthen .sum +} + +sub specal-numbers-pf (+@ints) { + @ints + andthen .elems + andthen divisors $_ + andthen .map: *-1 + andthen @ints[|$_] + andthen .map: *² + andthen .sum +} + +multi MAIN (Bool :test($)!) { + use Test; + is specal-numbers(1..4),21; + is specal-numbers(2, 7, 1, 19, 18, 3),63; + is specal-numbers-pf(1..4),21; + is specal-numbers-pf(2, 7, 1, 19, 18, 3),63; + done-testing; +} + +multi MAIN (+@ints) { + say specal-numbers @ints +} |
