diff options
| author | Luis Mochan <mochan@fis.unam.mx> | 2022-06-06 22:18:06 -0500 |
|---|---|---|
| committer | Luis Mochan <mochan@fis.unam.mx> | 2022-06-06 22:18:06 -0500 |
| commit | 3e7758eddef30dcc9b7f1ef8912979cd40baa39e (patch) | |
| tree | 4b56771d2d5901a537e71642f3c92dc8234bd9d5 /challenge-168 | |
| parent | ad6edd6a47450455cf81a94854ce74eabee2501a (diff) | |
| download | perlweeklychallenge-club-3e7758eddef30dcc9b7f1ef8912979cd40baa39e.tar.gz perlweeklychallenge-club-3e7758eddef30dcc9b7f1ef8912979cd40baa39e.tar.bz2 perlweeklychallenge-club-3e7758eddef30dcc9b7f1ef8912979cd40baa39e.zip | |
Solve PWC168
Diffstat (limited to 'challenge-168')
| -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" +} |
