aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-254/mark-anderson/raku/ch-1.raku26
-rw-r--r--challenge-254/mark-anderson/raku/ch-2.raku16
2 files changed, 42 insertions, 0 deletions
diff --git a/challenge-254/mark-anderson/raku/ch-1.raku b/challenge-254/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..95125ba617
--- /dev/null
+++ b/challenge-254/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,26 @@
+#!/usr/bin/env raku
+use Test;
+
+# https://oeis.org/A000578/b000578.txt
+
+ok three-power(27);
+ok three-power(0);
+nok three-power(6);
+nok three-power(999400119991);
+ok three-power(999400119992);
+nok three-power(999400119993);
+is-deeply (^Inf).hyper(batch => 4096).grep(&three-power).skip(100).head(10), (1000000,
+ 1030301,
+ 1061208,
+ 1092727,
+ 1124864,
+ 1157625,
+ 1191016,
+ 1225043,
+ 1259712,
+ 1295029);
+
+sub three-power($n)
+{
+ $n == exp(3, exp(1/3, $n).ceiling)
+}
diff --git a/challenge-254/mark-anderson/raku/ch-2.raku b/challenge-254/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..2180e0ebf9
--- /dev/null
+++ b/challenge-254/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/env raku
+use Test;
+
+is reverse-vowels("Raku"), "Ruka";
+is reverse-vowels("Perl"), "Perl";
+is reverse-vowels("Julia"), "Jaliu";
+is reverse-vowels("Uiua"), "Auiu";
+is reverse-vowels("Supercalifragilisticexpialidocious"), "Suporcilofrigalistecixpiiladicaeus";
+
+sub reverse-vowels($w)
+{
+ my @a = $w.comb;
+ my @i = @a.grep(/:i<[aeiou]>/, :k);
+ @a[@i] .= reverse;
+ tclc [~] @a
+}