aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark <53903062+andemark@users.noreply.github.com>2021-12-21 00:23:03 +0000
committerMark <53903062+andemark@users.noreply.github.com>2021-12-21 00:23:03 +0000
commitf0d9068ff8f371772b26e35b0926be1c02dd45bd (patch)
treea9ca9202f7cf51d6a61732bbff9a8adfbe8efbf6
parent1aa8ecccec917bbdee515fef036e8f84c47dae22 (diff)
downloadperlweeklychallenge-club-f0d9068ff8f371772b26e35b0926be1c02dd45bd.tar.gz
perlweeklychallenge-club-f0d9068ff8f371772b26e35b0926be1c02dd45bd.tar.bz2
perlweeklychallenge-club-f0d9068ff8f371772b26e35b0926be1c02dd45bd.zip
ch-1.raku
-rw-r--r--challenge-144/mark-anderson/raku/ch-1.raku23
1 files changed, 23 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..6b74750dee
--- /dev/null
+++ b/challenge-144/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,23 @@
+#!/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)
+{
+ return True if sqrt($n).is-prime;
+
+ given proper-divisors($n).grep(*.is-prime)
+ {
+ return False if .elems !== 2;
+ return .[0] * .[1] == $n;
+ }
+}