aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-043/stuart-little/README1
-rwxr-xr-xchallenge-043/stuart-little/raku/ch-1.p613
-rwxr-xr-xchallenge-043/stuart-little/raku/ch-2.p616
3 files changed, 30 insertions, 0 deletions
diff --git a/challenge-043/stuart-little/README b/challenge-043/stuart-little/README
new file mode 100644
index 0000000000..78439907de
--- /dev/null
+++ b/challenge-043/stuart-little/README
@@ -0,0 +1 @@
+Solutions by Stuart Little
diff --git a/challenge-043/stuart-little/raku/ch-1.p6 b/challenge-043/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..437ef3445c
--- /dev/null
+++ b/challenge-043/stuart-little/raku/ch-1.p6
@@ -0,0 +1,13 @@
+#!/usr/bin/env perl6
+use v6;
+
+# run as <script>
+
+say $=finish;
+
+=finish
+Red: 9,2
+Green: 2,5,4
+Black: 4,6,1
+Yellow: 1,7,3
+Blue: 3,8
diff --git a/challenge-043/stuart-little/raku/ch-2.p6 b/challenge-043/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..1fc414067d
--- /dev/null
+++ b/challenge-043/stuart-little/raku/ch-2.p6
@@ -0,0 +1,16 @@
+#!/usr/bin/env perl6
+use v6;
+
+# run as <script> <base>
+
+sub self_desc($b where * >= 2) {
+ $b == (1,2,3,6).any && return "None" xx 2;
+ my $b10=($b-4) * $b ** ($b-1)
+ + 2 * $b ** ($b-2)
+ + $b ** ($b-3)
+ + $b ** 3;
+ $b10, (($b <= 36) ?? ($b10.base($b)) !! ("base too large"))
+}
+
+my $base=@*ARGS[0];
+printf("Base 10: %s\nBase {$base}: %s\n", |self_desc($base))