aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScimon <simon.proctor@gmail.com>2022-04-06 09:06:33 +0100
committerScimon <simon.proctor@gmail.com>2022-04-06 09:06:33 +0100
commitc05f7e12bab9daacbef5e5c2b097055531b0af4c (patch)
tree5f2b0114afce1e0b799fa4eaef7ad90adb214998
parente0eee17ff2e9f4f59cc6ba4e2fd5ddbde41c374e (diff)
downloadperlweeklychallenge-club-c05f7e12bab9daacbef5e5c2b097055531b0af4c.tar.gz
perlweeklychallenge-club-c05f7e12bab9daacbef5e5c2b097055531b0af4c.tar.bz2
perlweeklychallenge-club-c05f7e12bab9daacbef5e5c2b097055531b0af4c.zip
Small fix to prime factorisation code
-rw-r--r--challenge-159/simon-proctor/raku/ch-2.raku9
1 files changed, 6 insertions, 3 deletions
diff --git a/challenge-159/simon-proctor/raku/ch-2.raku b/challenge-159/simon-proctor/raku/ch-2.raku
index 364774c744..0547cb5d76 100644
--- a/challenge-159/simon-proctor/raku/ch-2.raku
+++ b/challenge-159/simon-proctor/raku/ch-2.raku
@@ -5,10 +5,13 @@ sub MAIN( Int() \n ) {
say Möbius(n);
}
+subset Prime of Int where *.is-prime;
+
multi sub prime-factors(1) { [] }
-multi sub prime-factors(Int() $x) {
- my $p = (2..^$x).first($x %% *);
- return $p ?? [$p, |prime-factors($x div $p)] !! [$x]
+multi sub prime-factors(Prime \n) { [n] }
+multi sub prime-factors(Int() \x) {
+ my \p = (2..^x).first(x %% *);
+ return [p, |prime-factors(x div p)];
}
sub square-free(Int() $x) {
my @p = prime-factors($x);