aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-03-29 16:02:46 +0100
committerGitHub <noreply@github.com>2022-03-29 16:02:46 +0100
commitd57593c97d9d1e7db052047791910332d9dc9dab (patch)
tree1b8b6a24a21c1fb364f54c02c41fa6a51a9f75d3
parentf824298c9f54f595d0c3a74dfc61b68bae56131f (diff)
parentf442fd740022d94ab2f42b7405cbd2fb061d3cab (diff)
downloadperlweeklychallenge-club-d57593c97d9d1e7db052047791910332d9dc9dab.tar.gz
perlweeklychallenge-club-d57593c97d9d1e7db052047791910332d9dc9dab.tar.bz2
perlweeklychallenge-club-d57593c97d9d1e7db052047791910332d9dc9dab.zip
Merge pull request #5858 from 0rir/158
158
-rw-r--r--challenge-158/0rir/raku/ch-1.raku28
-rw-r--r--challenge-158/0rir/raku/ch-2.raku27
2 files changed, 55 insertions, 0 deletions
diff --git a/challenge-158/0rir/raku/ch-1.raku b/challenge-158/0rir/raku/ch-1.raku
new file mode 100644
index 0000000000..523335f473
--- /dev/null
+++ b/challenge-158/0rir/raku/ch-1.raku
@@ -0,0 +1,28 @@
+#!/usr/bin/env raku
+# :vim ft=raku sw=4 expandtabs
+use v6.d;
+
+# TASK #1 › Additive Primes to 100
+# An additive prime is a prime number whose decimal digits
+# sum to a prime.
+
+my $expected = "2, 3, 5, 7, 11, 23, 29, 41, 43, 47, 61, 67, 83, 89";
+
+my @prime = 2, 3, { first * %% none(@_), (@_[*-1], *+2 … ∞) } … ∞;
+
+sub _is-additive( Any $n --> Bool ) {
+ return True if ( [+] $n.Str.split( '' ) ).is-prime;
+ False;
+}
+
+my @result;
+
+for @prime -> $ap {
+ last if $ap > 100;
+ @result.push( $ap) if $ap.&_is-additive;
+}
+my $out = @result.join( ', ');
+
+die 'Logic error.' if $out ne $expected;
+
+say $out;
diff --git a/challenge-158/0rir/raku/ch-2.raku b/challenge-158/0rir/raku/ch-2.raku
new file mode 100644
index 0000000000..b39e69391f
--- /dev/null
+++ b/challenge-158/0rir/raku/ch-2.raku
@@ -0,0 +1,27 @@
+#!/usr/bin/env raku
+# :vim ft=raku sw=4 expandtabs
+use v6.d;
+
+# TASK #2 › First Series Cuban Primes
+
+my $want = 1000;
+
+my @expect;
+my @correct = 7, 19, 37, 61, 127, 271, 331, 397, 547, 631, 919,
+ 1657, 1801, 1951, 2269, 2437, 2791, 3169, 3571, 4219, 4447,
+ 5167, 5419, 6211, 7057, 7351, 8269, 9241,
+ 10267, 11719, 12097, 13267, 13669,
+ 16651, 19441, 19927, 22447, 23497, 24571, 25117, 26227;
+
+my @cuban-prime;
+ for 1 .. ∞ {
+ my $cp = ($_+1)³ - $_³;
+ last if $cp > $want;
+ if $cp.is-prime {
+ @cuban-prime.push: $cp;
+ @expect.push: @correct.shift;
+ }
+};
+
+die 'Logic error.' unless @cuban-prime eqv @expect;
+say @cuban-prime.join( ', '), '.';