diff options
| author | Scimon <simon.proctor@gmail.com> | 2022-04-06 09:06:33 +0100 |
|---|---|---|
| committer | Scimon <simon.proctor@gmail.com> | 2022-04-06 09:06:33 +0100 |
| commit | c05f7e12bab9daacbef5e5c2b097055531b0af4c (patch) | |
| tree | 5f2b0114afce1e0b799fa4eaef7ad90adb214998 | |
| parent | e0eee17ff2e9f4f59cc6ba4e2fd5ddbde41c374e (diff) | |
| download | perlweeklychallenge-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.raku | 9 |
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); |
