diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-06-07 13:47:48 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-07 13:47:48 +0100 |
| commit | 031fbe8a0c7289a18eb966600fe424891d7875e1 (patch) | |
| tree | 37c1a1cda09cde6d9c5742d7c6b3ef8fa5911cd3 | |
| parent | a7a5d5a80dae8b5243fdedf2cd62ff90b7996e99 (diff) | |
| parent | 3e7758eddef30dcc9b7f1ef8912979cd40baa39e (diff) | |
| download | perlweeklychallenge-club-031fbe8a0c7289a18eb966600fe424891d7875e1.tar.gz perlweeklychallenge-club-031fbe8a0c7289a18eb966600fe424891d7875e1.tar.bz2 perlweeklychallenge-club-031fbe8a0c7289a18eb966600fe424891d7875e1.zip | |
Merge pull request #6220 from wlmb/challenges
Solve PWC168
| -rw-r--r-- | challenge-168/wlmb/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-168/wlmb/perl/ch-1.pl | 20 | ||||
| -rwxr-xr-x | challenge-168/wlmb/perl/ch-2.pl | 15 |
3 files changed, 36 insertions, 0 deletions
diff --git a/challenge-168/wlmb/blog.txt b/challenge-168/wlmb/blog.txt new file mode 100644 index 0000000000..45d0e3b2e8 --- /dev/null +++ b/challenge-168/wlmb/blog.txt @@ -0,0 +1 @@ +https://wlmb.github.io/2022/06/06/PWC168/ diff --git a/challenge-168/wlmb/perl/ch-1.pl b/challenge-168/wlmb/perl/ch-1.pl new file mode 100755 index 0000000000..95ca7f1afa --- /dev/null +++ b/challenge-168/wlmb/perl/ch-1.pl @@ -0,0 +1,20 @@ +#!/usr/bin/env perl +# Perl weekly challenge 168 +# Task 1: Perrin prime +# +# See https://wlmb.github.io/2022/06/06/PWC168/#task-1-perrin-prime +use v5.12; +use warnings; +use bigint; +use Math::Prime::Util qw(is_prime); +die "Usage: $0 N\n to write the first N Perrin Primes" unless @ARGV; +my $N=shift; +my @last_perrins=(3,0,2); +my @perrin_primes; +my %seen; +while(@perrin_primes<$N){ + push @last_perrins, my $perrin=$last_perrins[-3]+$last_perrins[-2]; + shift @last_perrins; # no need to keep old Perrins + $seen{$perrin}=1, push @perrin_primes, $perrin if is_prime($perrin) and !$seen{$perrin}; +} +say join " ", sort {$a<=>$b} @perrin_primes; diff --git a/challenge-168/wlmb/perl/ch-2.pl b/challenge-168/wlmb/perl/ch-2.pl new file mode 100755 index 0000000000..d30dc2ba47 --- /dev/null +++ b/challenge-168/wlmb/perl/ch-2.pl @@ -0,0 +1,15 @@ +#!/usr/bin/env perl +# Perl weekly challenge 168 +# Task 2: Home prime +# +# See https://wlmb.github.io/2022/06/06/PWC168/#task-1-perrin-prime +use v5.12; +use warnings; +use Math::Prime::Util qw(is_prime factor); +die "Usage: $0 n1 [n2... ]\n to obtain the home primes of n1..." unless @ARGV; +for(@ARGV){ + say("The argument ($_) should have been >=2"), next unless $_>=2; + my $N=$_; + $N=join "", factor($N) while(!is_prime($N)); + say "HP$_=$N" +} |
