aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2022-06-06 10:41:12 +0200
committerLuca Ferrari <fluca1978@gmail.com>2022-06-06 10:41:12 +0200
commit77bfa9e18674bfaf4b56008dfdd7d7534411323c (patch)
treed3730d6c34e4d4a477bf54f63e421e6b2a2e8064
parent419a75e0d3adf1af222938e20750cb6e60b36639 (diff)
downloadperlweeklychallenge-club-77bfa9e18674bfaf4b56008dfdd7d7534411323c.tar.gz
perlweeklychallenge-club-77bfa9e18674bfaf4b56008dfdd7d7534411323c.tar.bz2
perlweeklychallenge-club-77bfa9e18674bfaf4b56008dfdd7d7534411323c.zip
Task 2 done
-rwxr-xr-xchallenge-168/luca-ferrari/raku/ch-2.p635
1 files changed, 35 insertions, 0 deletions
diff --git a/challenge-168/luca-ferrari/raku/ch-2.p6 b/challenge-168/luca-ferrari/raku/ch-2.p6
new file mode 100755
index 0000000000..a19f99a7ca
--- /dev/null
+++ b/challenge-168/luca-ferrari/raku/ch-2.p6
@@ -0,0 +1,35 @@
+#!raku
+
+# Perl Weekly Challenge 168
+
+sub prime-factors( Int $n where { $n > 0 } )
+{
+ my $number = $n;
+ my @factors;
+ return $n if $n.is-prime;
+
+ for 2 ..^ $n {
+ next if ! $_.is-prime;
+ next if $number !%% $_;
+ next if $_ > $number;
+
+ while ( $number %% $_ ) {
+ @factors.push: $_;
+ $number /= $_;
+ }
+
+ }
+
+ return @factors;
+}
+
+sub HP( Int $n where { $n > 0 } )
+{
+ my $number = prime-factors( $n ).join.Int;
+ return $number if $number.is-prime;
+ return HP( $number );
+}
+
+sub MAIN( Int $n where { $n > 1 } = 10 ) {
+ say HP( $n );
+}