aboutsummaryrefslogtreecommitdiff
path: root/challenge-158
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-04-01 22:44:45 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-04-01 22:44:45 +0100
commitd4623b0f8f6459704d5e71d3e09dd779ca07f05b (patch)
treeb29641052079be800e50d2462ae18630b2dee220 /challenge-158
parentc92e77ac7e5f838eedbc467a767ec7a7803d2a29 (diff)
downloadperlweeklychallenge-club-d4623b0f8f6459704d5e71d3e09dd779ca07f05b.tar.gz
perlweeklychallenge-club-d4623b0f8f6459704d5e71d3e09dd779ca07f05b.tar.bz2
perlweeklychallenge-club-d4623b0f8f6459704d5e71d3e09dd779ca07f05b.zip
- Added solutions by Laurent Rosenfeld.
Diffstat (limited to 'challenge-158')
-rw-r--r--challenge-158/laurent-rosenfeld/blog.txt1
-rw-r--r--challenge-158/laurent-rosenfeld/perl/ch-1.pl21
-rw-r--r--challenge-158/laurent-rosenfeld/perl/ch-2.pl21
-rw-r--r--challenge-158/laurent-rosenfeld/raku/ch-1.raku1
-rw-r--r--challenge-158/laurent-rosenfeld/raku/ch-2.raku6
5 files changed, 50 insertions, 0 deletions
diff --git a/challenge-158/laurent-rosenfeld/blog.txt b/challenge-158/laurent-rosenfeld/blog.txt
new file mode 100644
index 0000000000..12852602f3
--- /dev/null
+++ b/challenge-158/laurent-rosenfeld/blog.txt
@@ -0,0 +1 @@
+http://blogs.perl.org/users/laurent_r/2022/03/perl-weekly-challenge-158-additive-primes-and-cuban-primes.html
diff --git a/challenge-158/laurent-rosenfeld/perl/ch-1.pl b/challenge-158/laurent-rosenfeld/perl/ch-1.pl
new file mode 100644
index 0000000000..15e18d27b9
--- /dev/null
+++ b/challenge-158/laurent-rosenfeld/perl/ch-1.pl
@@ -0,0 +1,21 @@
+use strict;
+use warnings;
+use feature "say";
+
+my @small_primes = (2, 3, 5, 7);
+
+sub is_prime {
+ my $n = shift;
+ for my $p (@small_primes) {
+ return 1 if $p == $n;
+ return 0 if $n % $p == 0;
+ }
+ return 1;
+}
+
+for my $n (grep {is_prime $_} 2..100) {
+ my $sum = 0;
+ $sum += $_ for split '', $n;
+ print "$n " if is_prime $sum;
+}
+say "";
diff --git a/challenge-158/laurent-rosenfeld/perl/ch-2.pl b/challenge-158/laurent-rosenfeld/perl/ch-2.pl
new file mode 100644
index 0000000000..9b0b36e684
--- /dev/null
+++ b/challenge-158/laurent-rosenfeld/perl/ch-2.pl
@@ -0,0 +1,21 @@
+use strict;
+use warnings;
+use feature "say";
+
+my @small_primes = (2, 3, 5, 7, 11,13, 17, 19, 23, 29, 31);
+
+sub is_prime {
+ my $n = shift;
+ for my $p (@small_primes) {
+ return 1 if $p == $n;
+ return 0 if $n % $p == 0;
+ }
+ return 1;
+}
+
+for my $n (1..50) {
+ my $p = 3 * $n ** 2 + 3 * $n + 1;
+ last if $p > 1000;
+ print "$p, " if is_prime $p;
+}
+say " ";
diff --git a/challenge-158/laurent-rosenfeld/raku/ch-1.raku b/challenge-158/laurent-rosenfeld/raku/ch-1.raku
new file mode 100644
index 0000000000..17b197c749
--- /dev/null
+++ b/challenge-158/laurent-rosenfeld/raku/ch-1.raku
@@ -0,0 +1 @@
+say join ", ", grep { .is-prime and .comb.sum.is-prime }, 1..100;
diff --git a/challenge-158/laurent-rosenfeld/raku/ch-2.raku b/challenge-158/laurent-rosenfeld/raku/ch-2.raku
new file mode 100644
index 0000000000..10c74e3bcb
--- /dev/null
+++ b/challenge-158/laurent-rosenfeld/raku/ch-2.raku
@@ -0,0 +1,6 @@
+for 1..Inf -> $n {
+ my $p = 3 * $n ** 2 + 3 * $n + 1;
+ last if $p > 1000;
+ print "$p, " if $p.is-prime;
+}
+say " ";