diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-01-21 21:18:11 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-21 21:18:11 +0000 |
| commit | d9158621438166c0d4510ffe001bb339107bd6e8 (patch) | |
| tree | ebeb92831949bca4cb6cef38f2d9d280b813cb12 | |
| parent | 8e4e8729a8840c97f15f61d199079293388ad9af (diff) | |
| parent | a384ea13100c6fd477542708d16cfa6b542deb09 (diff) | |
| download | perlweeklychallenge-club-d9158621438166c0d4510ffe001bb339107bd6e8.tar.gz perlweeklychallenge-club-d9158621438166c0d4510ffe001bb339107bd6e8.tar.bz2 perlweeklychallenge-club-d9158621438166c0d4510ffe001bb339107bd6e8.zip | |
Merge pull request #9436 from wambash/challenge-week-252
Challenge week 252
| -rw-r--r-- | challenge-252/wambash/julia/ch-1.jl | 18 | ||||
| -rw-r--r-- | challenge-252/wambash/raku/ch-1.raku | 34 |
2 files changed, 52 insertions, 0 deletions
diff --git a/challenge-252/wambash/julia/ch-1.jl b/challenge-252/wambash/julia/ch-1.jl new file mode 100644 index 0000000000..849c07a864 --- /dev/null +++ b/challenge-252/wambash/julia/ch-1.jl @@ -0,0 +1,18 @@ +using Lazy +using Primes + +special_numbers(ints) = @>> begin + ints + length + divisors + getindex(ints) + x -> x.^2 + sum +end + + +using Test +@testset "special numbers" begin + @test special_numbers([1,2,3,4]) == 21 + @test special_numbers([2, 7, 1, 19, 18, 3]) == 63 +end 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 +} |
