aboutsummaryrefslogtreecommitdiff
path: root/challenge-147
diff options
context:
space:
mode:
author冯昶 <seaker@qq.com>2022-02-10 18:08:35 +0800
committer冯昶 <seaker@qq.com>2022-02-10 18:08:35 +0800
commitd6546fb6c2bbdfa0f14c0e42ad5e86acd0aa0cc5 (patch)
tree7caf5fe0d1a23af27322d4ce7bc7ebe800427414 /challenge-147
parent24d07638f45f70838ba3721106c5c4f6d992f69e (diff)
downloadperlweeklychallenge-club-d6546fb6c2bbdfa0f14c0e42ad5e86acd0aa0cc5.tar.gz
perlweeklychallenge-club-d6546fb6c2bbdfa0f14c0e42ad5e86acd0aa0cc5.tar.bz2
perlweeklychallenge-club-d6546fb6c2bbdfa0f14c0e42ad5e86acd0aa0cc5.zip
challenge 151 raku solutions
Diffstat (limited to 'challenge-147')
-rwxr-xr-xchallenge-147/feng-chang/raku/ch-1.raku2
-rwxr-xr-xchallenge-147/feng-chang/raku/ch-2a.raku22
2 files changed, 23 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;