diff options
| -rw-r--r-- | challenge-144/mark-anderson/raku/ch-1.raku | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/challenge-144/mark-anderson/raku/ch-1.raku b/challenge-144/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..e5e68b46d6 --- /dev/null +++ b/challenge-144/mark-anderson/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +use Prime::Factor; +use Test; + +is-deeply (^100).grep(&semi-prime), ( 4, 6, 9, 10, 14, 15, 21, 22, 25, 26, + 33, 34, 35, 38, 39, 46, 49, 51, 55, 57, + 58, 62, 65, 69, 74, 77, 82, 85, 86, 87, + 91, 93, 94, 95); + +is-deeply (^Inf).hyper.grep(&semi-prime)[1000, 2000, 5000, 9999], + (3599, 7454, 19645, 40882); + +sub semi-prime($n) +{ + my @div = proper-divisors($n, :s).skip; + return False if @div ~~ Empty; + return @div.grep(*.is-prime) == @div; +} |
