aboutsummaryrefslogtreecommitdiff
path: root/challenge-159/2colours
diff options
context:
space:
mode:
authorPolgár Márton <polgar@astron.hu>2022-04-05 13:38:22 +0200
committerPolgár Márton <polgar@astron.hu>2022-04-05 13:38:22 +0200
commit9e5cdd4d0bfc4bc54550cf8d49267342b2144e39 (patch)
treef02943629e148426baed4d57f21a887e7b2627ac /challenge-159/2colours
parent21b2771f7439710ee9a4631c40679a916ca9f723 (diff)
downloadperlweeklychallenge-club-9e5cdd4d0bfc4bc54550cf8d49267342b2144e39.tar.gz
perlweeklychallenge-club-9e5cdd4d0bfc4bc54550cf8d49267342b2144e39.tar.bz2
perlweeklychallenge-club-9e5cdd4d0bfc4bc54550cf8d49267342b2144e39.zip
Week #159 solutions
Diffstat (limited to 'challenge-159/2colours')
-rwxr-xr-xchallenge-159/2colours/raku/ch-1.raku9
-rwxr-xr-xchallenge-159/2colours/raku/ch-2.raku15
2 files changed, 24 insertions, 0 deletions
diff --git a/challenge-159/2colours/raku/ch-1.raku b/challenge-159/2colours/raku/ch-1.raku
new file mode 100755
index 0000000000..07f037d7f0
--- /dev/null
+++ b/challenge-159/2colours/raku/ch-1.raku
@@ -0,0 +1,9 @@
+#!/usr/bin/env raku
+
+sub farey(Int() $n) {
+ my @rest = (([\,] (1..$n)) ZX/ (1..$n)).flat.unique.sort.map(*.nude.join: '/');
+ ('0/1', |@rest)
+}
+
+my $n = prompt 'Input: $n = ';
+say "Output: {farey($n).join(', ')}."; \ No newline at end of file
diff --git a/challenge-159/2colours/raku/ch-2.raku b/challenge-159/2colours/raku/ch-2.raku
new file mode 100755
index 0000000000..e71d651672
--- /dev/null
+++ b/challenge-159/2colours/raku/ch-2.raku
@@ -0,0 +1,15 @@
+#!/usr/bin/env raku
+
+constant \minus-one = -1;
+
+multi möbius(1 --> 1) {}
+multi möbius($n where { .is-prime } --> minus-one) {}
+multi möbius($n) {
+ my $divisor = (2..^$n).first($n %% *);
+ my $quotient = $n div $divisor;
+ $quotient %% $divisor ?? 0 !! möbius($divisor) * möbius($quotient)
+}
+
+
+my $n = prompt 'Input: $n = ';
+say "Output: {möbius($n)}";