diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-04-05 14:41:38 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-05 14:41:38 +0100 |
| commit | 0f419ec3a4bb39334acd28b2871202ce6dfa135b (patch) | |
| tree | 1d5be52c4c3be10336db55b12daa1f1f5359cad2 | |
| parent | caa221e4bb39c7b8c007439b82252511425d20c6 (diff) | |
| parent | e0eee17ff2e9f4f59cc6ba4e2fd5ddbde41c374e (diff) | |
| download | perlweeklychallenge-club-0f419ec3a4bb39334acd28b2871202ce6dfa135b.tar.gz perlweeklychallenge-club-0f419ec3a4bb39334acd28b2871202ce6dfa135b.tar.bz2 perlweeklychallenge-club-0f419ec3a4bb39334acd28b2871202ce6dfa135b.zip | |
Merge pull request #5882 from Scimon/master
Challenge 1
| -rw-r--r-- | challenge-159/simon-proctor/raku/ch-1.raku | 6 | ||||
| -rw-r--r-- | challenge-159/simon-proctor/raku/ch-2.raku | 23 |
2 files changed, 29 insertions, 0 deletions
diff --git a/challenge-159/simon-proctor/raku/ch-1.raku b/challenge-159/simon-proctor/raku/ch-1.raku new file mode 100644 index 0000000000..1b03ac2520 --- /dev/null +++ b/challenge-159/simon-proctor/raku/ch-1.raku @@ -0,0 +1,6 @@ +#!/usr/bin/env raku + +#| Output the Farey Sequence of order n +sub MAIN ( Int \n ) { + ((0..n) X/ (1..n)).grep( * <= 1 ).unique.sort.map( *.nude ).map( { "@_[0]/@_[1]" } ).join(", ").say +} diff --git a/challenge-159/simon-proctor/raku/ch-2.raku b/challenge-159/simon-proctor/raku/ch-2.raku new file mode 100644 index 0000000000..364774c744 --- /dev/null +++ b/challenge-159/simon-proctor/raku/ch-2.raku @@ -0,0 +1,23 @@ +#!/usr/bin/env raku + +#| Given a number n print the Möbius number for it +sub MAIN( Int() \n ) { + say Möbius(n); +} + +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] +} +sub square-free(Int() $x) { + my @p = prime-factors($x); + @p ~~ @p.unique +}; +sub Möbius($x) { + square-free($x) ?? + ( + prime-factors($x).elems %% 2 ?? 1 !! -1 + ) + !! 0; +} |
