aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-01-17 00:18:30 +0000
committerGitHub <noreply@github.com>2022-01-17 00:18:30 +0000
commitff082d52badb7502859f028c1f8f5785d1d06ad4 (patch)
treefa72da411b51a735190ad69ec8b15c83cd617c1c
parent8e6c9cdc060aa5442ef97a656714d25ed6533298 (diff)
parent43949a47d2103b57094bccc0f065f447519b2d69 (diff)
downloadperlweeklychallenge-club-ff082d52badb7502859f028c1f8f5785d1d06ad4.tar.gz
perlweeklychallenge-club-ff082d52badb7502859f028c1f8f5785d1d06ad4.tar.bz2
perlweeklychallenge-club-ff082d52badb7502859f028c1f8f5785d1d06ad4.zip
Merge pull request #5528 from 2colours/new-branch
Challenge #147 added by new enforcer 2colours :)
-rw-r--r--challenge-147/2colours/README1
-rwxr-xr-xchallenge-147/2colours/raku/ch-1.raku12
-rwxr-xr-xchallenge-147/2colours/raku/ch-2.raku18
3 files changed, 31 insertions, 0 deletions
diff --git a/challenge-147/2colours/README b/challenge-147/2colours/README
new file mode 100644
index 0000000000..6894fbec08
--- /dev/null
+++ b/challenge-147/2colours/README
@@ -0,0 +1 @@
+Solution By Márton Polgár.
diff --git a/challenge-147/2colours/raku/ch-1.raku b/challenge-147/2colours/raku/ch-1.raku
new file mode 100755
index 0000000000..5757fef8da
--- /dev/null
+++ b/challenge-147/2colours/raku/ch-1.raku
@@ -0,0 +1,12 @@
+#!/usr/bin/env raku
+
+use experimental :cached;
+
+multi ltprimes(0, $) { ('') }
+multi ltprimes($digits, $base) is cached {
+ (1..^$base).map(*.base: $base) X~ ltprimes($digits-1, $base)
+ andthen .grep(&is-prime)>>.Int
+}
+
+
+(1..*).map(*.&ltprimes(10).Slip).head(20).say;
diff --git a/challenge-147/2colours/raku/ch-2.raku b/challenge-147/2colours/raku/ch-2.raku
new file mode 100755
index 0000000000..ca0dd53bd4
--- /dev/null
+++ b/challenge-147/2colours/raku/ch-2.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/env raku
+
+sub is-pentagon($c) { (1+sqrt(1+24*$c))%%6 }
+
+sub P($n) { $n*(3*$n-1) div 2 #`(make rationals faster, pretty please) }
+
+OUTSIDE:
+for 1..Inf -> $bigger {
+ for 1..^$bigger -> $smaller {
+ my $bigger-p = P($bigger);
+ my $smaller-p = P($smaller);
+ #my ($bigger-p, $smaller-p) = (P($bigger), P($smaller)); eliminate the runtime overhead of this destructuring, pretty please
+ if is-pentagon($bigger-p + $smaller-p) && is-pentagon($bigger-p - $smaller-p) {
+ say "P($bigger)=$bigger-p and P($smaller)=$smaller-p";
+ last OUTSIDE;
+ }
+ }
+}