diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-09-05 01:36:19 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-09-05 01:36:19 +0100 |
| commit | 46c5946c529b5fb90a673a124e8695d1cc9e8106 (patch) | |
| tree | 17cc9db5c79f39d0a87a550509c540b2a4871fa3 | |
| parent | bd174ebd48f0d3bba4104bae01ee8f6db0706294 (diff) | |
| download | perlweeklychallenge-club-46c5946c529b5fb90a673a124e8695d1cc9e8106.tar.gz perlweeklychallenge-club-46c5946c529b5fb90a673a124e8695d1cc9e8106.tar.bz2 perlweeklychallenge-club-46c5946c529b5fb90a673a124e8695d1cc9e8106.zip | |
- Added unit test for "Prime Sum" task in Raku.
| -rwxr-xr-x | challenge-076/mohammad-anwar/raku/ch-1.t | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/challenge-076/mohammad-anwar/raku/ch-1.t b/challenge-076/mohammad-anwar/raku/ch-1.t new file mode 100755 index 0000000000..c1674708f8 --- /dev/null +++ b/challenge-076/mohammad-anwar/raku/ch-1.t @@ -0,0 +1,38 @@ +#!/usr/bin/env raku + +# +# Perl Weekly Challenge - 076 +# +# Task #1: Prime Sum +# +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-076 +# + +use Test; + +is-deeply prime-sum(9).<>, [(2, 7),], "prime sum = 9"; +is-deeply prime-sum(12).<>, [(5, 7), (2, 3, 7)], "prime sum = 12"; + +done-testing; + +# +# +# METHODS + +sub prime-sum(Int $sum) { + + my @prime = find-prime-upto($sum); + my @prime-sum = Empty; + for 1..$sum -> $i { + for @prime.combinations: $i -> $j { + my $_sum = [+] $j; + @prime-sum.push: $j if $_sum == $sum; + } + } + + return @prime-sum; +} + +sub find-prime-upto(Int $sum) { + return (2..$sum).grep: { .is-prime }; +} |
