aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlavio Poletti <flavio@polettix.it>2022-03-30 21:58:14 +0200
committerFlavio Poletti <flavio@polettix.it>2022-03-30 21:58:14 +0200
commitc4c4648c887939f8837228c23db2ad50753d881a (patch)
treef62e0e0a3cbda38a30e0437f8406f32d886b7e8b
parente02e8f94c1c229dc5be934e9a221f846eb229a42 (diff)
downloadperlweeklychallenge-club-c4c4648c887939f8837228c23db2ad50753d881a.tar.gz
perlweeklychallenge-club-c4c4648c887939f8837228c23db2ad50753d881a.tar.bz2
perlweeklychallenge-club-c4c4648c887939f8837228c23db2ad50753d881a.zip
Add polettix's solution to challenge-158
-rw-r--r--challenge-158/polettix/blog.txt1
-rw-r--r--challenge-158/polettix/blog1.txt1
-rw-r--r--challenge-158/polettix/perl/ch-1.pl9
-rw-r--r--challenge-158/polettix/perl/ch-2.pl14
-rw-r--r--challenge-158/polettix/perl/cpanfile1
-rw-r--r--challenge-158/polettix/perl/cpanfile.snapshot38
-rw-r--r--challenge-158/polettix/raku/ch-1.raku5
-rw-r--r--challenge-158/polettix/raku/ch-2.raku11
8 files changed, 80 insertions, 0 deletions
diff --git a/challenge-158/polettix/blog.txt b/challenge-158/polettix/blog.txt
new file mode 100644
index 0000000000..0a5bf6d4c0
--- /dev/null
+++ b/challenge-158/polettix/blog.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/03/29/pwc158-additive-primes/
diff --git a/challenge-158/polettix/blog1.txt b/challenge-158/polettix/blog1.txt
new file mode 100644
index 0000000000..2e28310797
--- /dev/null
+++ b/challenge-158/polettix/blog1.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2022/03/30/pwc158-first-series-cuban-primes/
diff --git a/challenge-158/polettix/perl/ch-1.pl b/challenge-158/polettix/perl/ch-1.pl
new file mode 100644
index 0000000000..e59692afea
--- /dev/null
+++ b/challenge-158/polettix/perl/ch-1.pl
@@ -0,0 +1,9 @@
+#!/usr/bin/env perl
+use v5.24;
+use FindBin '$Bin';
+use lib "$Bin/local/lib/perl5";
+use ntheory 'is_prime';
+use List::Util 'sum';
+
+my $M = shift // 100;
+say join ', ', grep { is_prime($_) && is_prime sum split m{}mxs } 2 .. $M;
diff --git a/challenge-158/polettix/perl/ch-2.pl b/challenge-158/polettix/perl/ch-2.pl
new file mode 100644
index 0000000000..34d08e5eb2
--- /dev/null
+++ b/challenge-158/polettix/perl/ch-2.pl
@@ -0,0 +1,14 @@
+#!/usr/bin/env perl
+use v5.24;
+use FindBin '$Bin';
+use lib "$Bin/local/lib/perl5";
+use ntheory 'is_prime';
+
+my $M = shift // 1000;
+my @cubans;
+my $y = 1;
+while ((my $p = 3 * $y * ($y + 1) + 1) <= $M) {
+ push @cubans, $p if is_prime($p);
+ ++$y;
+}
+say join(', ', @cubans), '.';
diff --git a/challenge-158/polettix/perl/cpanfile b/challenge-158/polettix/perl/cpanfile
new file mode 100644
index 0000000000..91dda9616f
--- /dev/null
+++ b/challenge-158/polettix/perl/cpanfile
@@ -0,0 +1 @@
+requires 'Math::Prime::Util';
diff --git a/challenge-158/polettix/perl/cpanfile.snapshot b/challenge-158/polettix/perl/cpanfile.snapshot
new file mode 100644
index 0000000000..2fd600a3af
--- /dev/null
+++ b/challenge-158/polettix/perl/cpanfile.snapshot
@@ -0,0 +1,38 @@
+# carton snapshot format: version 1.0
+DISTRIBUTIONS
+ Math-Prime-Util-0.73
+ pathname: D/DA/DANAJ/Math-Prime-Util-0.73.tar.gz
+ provides:
+ Math::Prime::Util 0.73
+ Math::Prime::Util::ChaCha 0.73
+ Math::Prime::Util::Entropy 0.73
+ Math::Prime::Util::MemFree 0.73
+ Math::Prime::Util::PP 0.73
+ Math::Prime::Util::PrimeArray 0.73
+ Math::Prime::Util::PrimeIterator 0.73
+ ntheory 0.73
+ requirements:
+ Carp 0
+ Config 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ Math::BigFloat 1.59
+ Math::BigInt 1.88
+ Math::Prime::Util::GMP 0.50
+ Tie::Array 0
+ XSLoader 0.01
+ base 0
+ constant 0
+ perl 5.006002
+ Math-Prime-Util-GMP-0.52
+ pathname: D/DA/DANAJ/Math-Prime-Util-GMP-0.52.tar.gz
+ provides:
+ Math::Prime::Util::GMP 0.52
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ Fcntl 0
+ XSLoader 0.01
+ base 0
+ perl 5.006002
diff --git a/challenge-158/polettix/raku/ch-1.raku b/challenge-158/polettix/raku/ch-1.raku
new file mode 100644
index 0000000000..2168a14439
--- /dev/null
+++ b/challenge-158/polettix/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN (Int:D $M = 100) {
+ (2 .. $M).grep({$_.is-prime && $_.comb.sum.is-prime}).join(', ').put;
+}
diff --git a/challenge-158/polettix/raku/ch-2.raku b/challenge-158/polettix/raku/ch-2.raku
new file mode 100644
index 0000000000..083bf31b55
--- /dev/null
+++ b/challenge-158/polettix/raku/ch-2.raku
@@ -0,0 +1,11 @@
+#!/usr/bin/env raku
+use v6;
+sub MAIN (Int:D $M = 1000) {
+ put gather {
+ my $y = 1;
+ while (my $p = 3 * $y * ($y + 1) + 1) <= $M {
+ take $p if $p.is-prime;
+ ++$y;
+ }
+ }.join(', '), '.';
+}