aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]challenge-159/luca-ferrari/raku/ch-2.p628
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-159/luca-ferrari/raku/ch-2.p6 b/challenge-159/luca-ferrari/raku/ch-2.p6
index 4f7c3ef22b..5f9a75537e 100644..100755
--- a/challenge-159/luca-ferrari/raku/ch-2.p6
+++ b/challenge-159/luca-ferrari/raku/ch-2.p6
@@ -1,2 +1,30 @@
#!raku
# Perl Weekly Challenge 159
+
+sub prime-factors( Int $n ) {
+ my $number = $n;
+ my @factors;
+
+ my $factor = 2;
+ while ( $number > 1 && $factor <= $number ) {
+ if ( $number %% $factor ) {
+ @factors.push: $factor;
+ $number /= $factor;
+ }
+ else {
+ $factor++;
+ }
+ }
+
+ return @factors;
+}
+
+
+sub MAIN( Int $n where { $n > 0 } ) {
+
+ my @prime-factors = prime-factors( $n );
+ '0'.say and exit if @prime-factors.elems != @prime-factors.unique.elems;
+ '1'.say and exit if @prime-factors.unique.elems %% 2;
+ '-1'.say and exit;
+
+}