From 77bfa9e18674bfaf4b56008dfdd7d7534411323c Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Mon, 6 Jun 2022 10:41:12 +0200 Subject: Task 2 done --- challenge-168/luca-ferrari/raku/ch-2.p6 | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 challenge-168/luca-ferrari/raku/ch-2.p6 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 ); +} -- cgit