aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-147/feng-chang/raku/ch-1.raku2
-rwxr-xr-xchallenge-147/feng-chang/raku/ch-2a.raku22
-rwxr-xr-xchallenge-150/feng-chang/raku/ch-1.raku6
-rwxr-xr-xchallenge-150/feng-chang/raku/ch-2.raku8
-rwxr-xr-xchallenge-151/feng-chang/raku/ch-2.raku9
5 files changed, 46 insertions, 1 deletions
diff --git a/challenge-147/feng-chang/raku/ch-1.raku b/challenge-147/feng-chang/raku/ch-1.raku
index d3dab98fae..41da33cad4 100755
--- a/challenge-147/feng-chang/raku/ch-1.raku
+++ b/challenge-147/feng-chang/raku/ch-1.raku
@@ -5,7 +5,7 @@ unit sub MAIN(UInt:D \num = 20);
my @lefty-primes = 2, 3, 5, 7;
my ($start, $end) = 0, 3;
-my UInt $sz = @lefty-primes.elems;
+my UInt $sz = @lefty-primes.elems;
while $sz < num {
for 1..9 -> \d {
diff --git a/challenge-147/feng-chang/raku/ch-2a.raku b/challenge-147/feng-chang/raku/ch-2a.raku
new file mode 100755
index 0000000000..bf937bd660
--- /dev/null
+++ b/challenge-147/feng-chang/raku/ch-2a.raku
@@ -0,0 +1,22 @@
+#!/bin/env raku
+
+# reference https://gfldex.wordpress.com/2022/01/15/manual-hypering/
+
+sub needle(int \b) {
+ sub is-pentagon(\n is raw) { (1 + sqrt(1 + 24 * n)) %% 6 }
+ sub P(\n is raw) { n * (3 * n - 1) div 2 }
+
+ loop (my int $s = 1; $s < b; ++$s) {
+ my \bp = P(b);
+ my \sp = P($s);
+ if is-pentagon(bp + sp) && is-pentagon(bp - sp) {
+ return |(b, $s);
+ }
+ }
+}
+
+sub infix:<notnilor>(\maybenil, \alternative) {
+ maybenil =:= Nil ?? alternative !! maybenil
+}
+
+say (^∞).hyper(:batch(8), :degree(16)).map({ $_ with .&needle }).head;
diff --git a/challenge-150/feng-chang/raku/ch-1.raku b/challenge-150/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..817a93aaaf
--- /dev/null
+++ b/challenge-150/feng-chang/raku/ch-1.raku
@@ -0,0 +1,6 @@
+#!/bin/env raku
+
+unit sub MAIN(Str:D $a, Str:D $b);
+
+my @fibo-words = $a, $b, * ~ * ... *.chars ≥ 51;
+put @fibo-words[*-1].substr(50,1);
diff --git a/challenge-150/feng-chang/raku/ch-2.raku b/challenge-150/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..b992d1867b
--- /dev/null
+++ b/challenge-150/feng-chang/raku/ch-2.raku
@@ -0,0 +1,8 @@
+#!/bin/env raku
+
+unit sub MAIN(UInt:D \N = 500);
+
+my @nums = 1..N;
+@nums .= grep(* !%% $_²) for (2 .. N.sqrt).grep(*.is-prime);
+
+put @nums;
diff --git a/challenge-151/feng-chang/raku/ch-2.raku b/challenge-151/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..4fa124eac5
--- /dev/null
+++ b/challenge-151/feng-chang/raku/ch-2.raku
@@ -0,0 +1,9 @@
+#!/bin/env raku
+
+unit sub MAIN(*@V);
+
+put max-gain(@V);
+
+multi max-gain() { 0 }
+multi max-gain(@V where *.elems == 1|2) { @V.max }
+multi max-gain(@V --> UInt:D) { max(@V[0] + max-gain(@V.tail(*-2)), max-gain(@V.tail(*-1))) }