aboutsummaryrefslogtreecommitdiff
path: root/challenge-158
diff options
context:
space:
mode:
author冯昶 <seaker@qq.com>2022-04-12 16:32:06 +0800
committer冯昶 <seaker@qq.com>2022-04-12 16:32:06 +0800
commit65e9cda555ba021416fefa566bc87d5723d805f7 (patch)
tree7c51d92e9140e569e98faa2e929e299b50c6125f /challenge-158
parent512325784ffcf08208fc351310377776217eca7e (diff)
parent6e220136f3cd0b6189d3ea501127ae7b8531b0c6 (diff)
downloadperlweeklychallenge-club-65e9cda555ba021416fefa566bc87d5723d805f7.tar.gz
perlweeklychallenge-club-65e9cda555ba021416fefa566bc87d5723d805f7.tar.bz2
perlweeklychallenge-club-65e9cda555ba021416fefa566bc87d5723d805f7.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-158')
-rw-r--r--challenge-158/0rir/raku/ch-1.raku28
-rw-r--r--challenge-158/0rir/raku/ch-2.raku27
-rwxr-xr-xchallenge-158/alexander-pankoff/perl/ch-1.pl34
-rwxr-xr-xchallenge-158/alexander-pankoff/perl/ch-2.pl41
-rw-r--r--challenge-158/andrezgz/perl/ch-1.pl40
-rw-r--r--challenge-158/andrezgz/perl/ch-2.pl38
-rw-r--r--challenge-158/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-158/arne-sommer/perl/additive-primes-perl27
-rwxr-xr-xchallenge-158/arne-sommer/perl/ch-1.pl27
-rwxr-xr-xchallenge-158/arne-sommer/perl/ch-2.pl25
-rwxr-xr-xchallenge-158/arne-sommer/perl/fscp-perl25
-rwxr-xr-xchallenge-158/arne-sommer/raku/additive-primes17
-rwxr-xr-xchallenge-158/arne-sommer/raku/additive-primes-seq7
-rwxr-xr-xchallenge-158/arne-sommer/raku/ch-1.raku17
-rwxr-xr-xchallenge-158/arne-sommer/raku/ch-2.raku17
-rwxr-xr-xchallenge-158/arne-sommer/raku/fscp17
-rwxr-xr-xchallenge-158/arne-sommer/raku/fscp-seq7
-rw-r--r--challenge-158/athanasius/perl/ch-1.pl106
-rw-r--r--challenge-158/athanasius/perl/ch-2.pl129
-rw-r--r--challenge-158/athanasius/raku/ch-1.raku107
-rw-r--r--challenge-158/athanasius/raku/ch-2.raku100
-rw-r--r--challenge-158/bruce-gray/go/ch-1.go30
-rw-r--r--challenge-158/bruce-gray/go/ch-2.go27
-rwxr-xr-xchallenge-158/bruce-gray/perl/ch-1.pl5
-rw-r--r--challenge-158/bruce-gray/perl/ch-1a.sh1
-rwxr-xr-xchallenge-158/bruce-gray/perl/ch-2.pl11
-rw-r--r--challenge-158/bruce-gray/perl/ch-2a.sh1
-rw-r--r--challenge-158/bruce-gray/raku/ch-1.raku5
-rw-r--r--challenge-158/bruce-gray/raku/ch-1a.sh1
-rw-r--r--challenge-158/bruce-gray/raku/ch-2.raku7
-rw-r--r--challenge-158/bruce-gray/raku/ch-2a.sh1
-rw-r--r--challenge-158/cheok-yin-fung/dart/ch-1.dart27
-rw-r--r--challenge-158/cheok-yin-fung/dart/ch-2.dart33
-rw-r--r--challenge-158/colin-crain/blog.txt1
-rw-r--r--challenge-158/colin-crain/blog1.txt1
-rwxr-xr-xchallenge-158/colin-crain/perl/ch-1.pl111
-rwxr-xr-xchallenge-158/colin-crain/perl/ch-2.pl56
-rwxr-xr-xchallenge-158/colin-crain/raku/ch-1.raku18
-rwxr-xr-xchallenge-158/colin-crain/raku/ch-2.raku19
-rw-r--r--challenge-158/deadmarshal/lua/ch-1.lua31
-rw-r--r--challenge-158/deadmarshal/lua/ch-2.lua23
-rw-r--r--challenge-158/deadmarshal/pascal/ch1.pas53
-rw-r--r--challenge-158/deadmarshal/pascal/ch2.pas43
-rw-r--r--challenge-158/deadmarshal/perl/ch-1.pl15
-rw-r--r--challenge-158/deadmarshal/perl/ch-2.pl19
-rw-r--r--challenge-158/duncan-c-white/README73
-rw-r--r--challenge-158/duncan-c-white/perl/MakePrimes.pm97
-rwxr-xr-xchallenge-158/duncan-c-white/perl/ch-1.pl39
-rwxr-xr-xchallenge-158/duncan-c-white/perl/ch-2.pl46
-rwxr-xr-xchallenge-158/e-choroba/perl/ch-1.pl24
-rwxr-xr-xchallenge-158/e-choroba/perl/ch-2.pl26
-rw-r--r--challenge-158/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-158/jaldhar-h-vyas/perl/ch-1.pl36
-rwxr-xr-xchallenge-158/jaldhar-h-vyas/perl/ch-2.pl39
-rwxr-xr-xchallenge-158/jaldhar-h-vyas/raku/ch-1.sh3
-rwxr-xr-xchallenge-158/jaldhar-h-vyas/raku/ch-2.raku18
-rw-r--r--challenge-158/james-smith/README.md136
-rw-r--r--challenge-158/james-smith/blog.txt1
-rw-r--r--challenge-158/james-smith/perl/ch-1.pl62
-rw-r--r--challenge-158/james-smith/perl/ch-2.pl19
-rwxr-xr-xchallenge-158/jo-37/perl/ch-1.pl80
-rwxr-xr-xchallenge-158/jo-37/perl/ch-2.pl110
-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
-rw-r--r--challenge-158/lubos-kolouch/perl/ch-1.pl29
-rw-r--r--challenge-158/lubos-kolouch/perl/ch-2.pl45
-rw-r--r--challenge-158/lubos-kolouch/python/ch-1.py21
-rw-r--r--challenge-158/lubos-kolouch/python/ch-2.py41
-rwxr-xr-xchallenge-158/mattneleigh/perl/ch-1.pl153
-rwxr-xr-xchallenge-158/mattneleigh/perl/ch-2.pl155
-rw-r--r--challenge-158/mohammad-anwar/perl/ch-1.pl62
-rw-r--r--challenge-158/mohammad-anwar/raku/ch-1.raku50
-rw-r--r--challenge-158/paulo-custodio/perl/ch-1.pl33
-rw-r--r--challenge-158/paulo-custodio/perl/ch-2.pl34
-rw-r--r--challenge-158/paulo-custodio/t/test-1.yaml5
-rw-r--r--challenge-158/paulo-custodio/t/test-2.yaml5
-rwxr-xr-xchallenge-158/pete-houston/perl/ch-1.pl24
-rwxr-xr-xchallenge-158/pete-houston/perl/ch-2.pl40
-rw-r--r--challenge-158/peter-campbell-smith/blog.txt1
-rwxr-xr-xchallenge-158/peter-campbell-smith/perl/ch-1.pl24
-rwxr-xr-xchallenge-158/peter-campbell-smith/perl/ch-2.pl27
-rw-r--r--challenge-158/pokgopun/go/ch-2.go7
-rw-r--r--challenge-158/pokgopun/perl/ch-1.pl2
-rw-r--r--challenge-158/pokgopun/perl/ch-2.pl6
-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
-rw-r--r--challenge-158/robert-dicicco/julia/ch-1.jl41
-rw-r--r--challenge-158/robert-dicicco/julia/ch-2.jl45
-rw-r--r--challenge-158/robert-dicicco/python/ch-1.py51
-rw-r--r--challenge-158/robert-dicicco/python/ch-2.py47
-rw-r--r--challenge-158/robert-dicicco/ruby/ch-1.rb32
-rw-r--r--challenge-158/robert-dicicco/ruby/ch-2.rb36
-rw-r--r--challenge-158/roger-bell-west/blog.txt1
-rw-r--r--challenge-158/sgreen/README.md4
-rw-r--r--challenge-158/sgreen/blog.txt1
-rwxr-xr-xchallenge-158/sgreen/perl/ch-1.pl45
-rwxr-xr-xchallenge-158/sgreen/perl/ch-2.pl41
-rwxr-xr-xchallenge-158/sgreen/python/ch-1.py41
-rwxr-xr-xchallenge-158/sgreen/python/ch-2.py41
-rw-r--r--challenge-158/wambash/julia/ch-1.jl45
-rw-r--r--challenge-158/wambash/julia/ch-2.jl40
-rw-r--r--challenge-158/wambash/raku/ch-1.raku18
-rw-r--r--challenge-158/wambash/raku/ch-2.raku17
112 files changed, 3524 insertions, 102 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( ', '), '.';
diff --git a/challenge-158/alexander-pankoff/perl/ch-1.pl b/challenge-158/alexander-pankoff/perl/ch-1.pl
new file mode 100755
index 0000000000..5818eb641e
--- /dev/null
+++ b/challenge-158/alexander-pankoff/perl/ch-1.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use feature qw'say state signatures';
+no warnings qw'experimental::signatures';
+
+use List::Util qw(sum0);
+
+run() unless caller();
+
+sub run() {
+ say join( ', ', additive_primes() );
+}
+
+sub additive_primes($max = 100) {
+ return grep { is_prime($_) && is_prime( digit_sum($_) ) } 2 .. $max;
+}
+
+# from challenge 150 task 2
+sub is_prime($x) {
+ return 0 if $x <= 1;
+ return 1 if $x <= 3;
+ for ( my $i = 2 ; $i <= sqrt($x) ; $i++ ) {
+ return 0 if $x % $i == 0;
+ }
+ return 1;
+}
+
+# from challenge 149 task 1
+sub digit_sum($x) {
+ my $sum = sum0 split( '', $x );
+
+ return $sum;
+}
diff --git a/challenge-158/alexander-pankoff/perl/ch-2.pl b/challenge-158/alexander-pankoff/perl/ch-2.pl
new file mode 100755
index 0000000000..b672d273e5
--- /dev/null
+++ b/challenge-158/alexander-pankoff/perl/ch-2.pl
@@ -0,0 +1,41 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use feature qw'say state signatures';
+no warnings qw'experimental::signatures';
+