diff options
| -rwxr-xr-x | challenge-147/feng-chang/raku/ch-1.raku | 2 | ||||
| -rwxr-xr-x | challenge-147/feng-chang/raku/ch-2a.raku | 22 | ||||
| -rwxr-xr-x | challenge-150/feng-chang/raku/ch-1.raku | 6 | ||||
| -rwxr-xr-x | challenge-150/feng-chang/raku/ch-2.raku | 8 | ||||
| -rwxr-xr-x | challenge-151/feng-chang/raku/ch-2.raku | 9 |
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))) } |
