aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-175/2colours/raku/ch-1.raku15
-rwxr-xr-xchallenge-175/2colours/raku/ch-2.raku21
2 files changed, 36 insertions, 0 deletions
diff --git a/challenge-175/2colours/raku/ch-1.raku b/challenge-175/2colours/raku/ch-1.raku
new file mode 100755
index 0000000000..97ee0082d1
--- /dev/null
+++ b/challenge-175/2colours/raku/ch-1.raku
@@ -0,0 +1,15 @@
+#!/usr/bin/env raku
+
+sub MAIN(
+ Int $year = DateTime.now.year #= the year to check
+) {
+ (1 .. 12)
+ .map: {
+ Date.new: :$year, month => $_ andthen
+ .last-date-in-month andthen
+ .earlier: day => .day-of-week % 7
+ } andthen
+ .map: *.Str andthen
+ .join: "\n" andthen
+ .say;
+} \ No newline at end of file
diff --git a/challenge-175/2colours/raku/ch-2.raku b/challenge-175/2colours/raku/ch-2.raku
new file mode 100755
index 0000000000..55f646345a
--- /dev/null
+++ b/challenge-175/2colours/raku/ch-2.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+use experimental :cached;
+
+sub totient($n) is cached {
+ (1 ..^ $n)
+ .grep: * gcd $n == 1 andthen
+ .elems
+}
+
+sub iterated-totient-sum($n) {
+ $n, *.&totient ... 1 andthen
+ .skip
+ .sum
+}
+
+(1 .. *)
+ .grep: { .&iterated-totient-sum == $_} andthen
+ .head: 20 andthen
+ .join: ', ' andthen
+ .say; \ No newline at end of file