diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-01-14 23:16:11 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-14 23:16:11 +0000 |
| commit | d201aee55d4f1db48a1cca8989c8d7e29169438e (patch) | |
| tree | 4309bc42c5c6e0d877ae0cdf532b3912052da511 /challenge-147 | |
| parent | d8700fe95aff1142981a5e9c9e64d83bf7486633 (diff) | |
| parent | 54c5f09449b5e3780ed5cac7171ca48d4f99238e (diff) | |
| download | perlweeklychallenge-club-d201aee55d4f1db48a1cca8989c8d7e29169438e.tar.gz perlweeklychallenge-club-d201aee55d4f1db48a1cca8989c8d7e29169438e.tar.bz2 perlweeklychallenge-club-d201aee55d4f1db48a1cca8989c8d7e29169438e.zip | |
Merge pull request #5518 from oWnOIzRi/week147
add solution week 147 task 1 in perl
Diffstat (limited to 'challenge-147')
| -rw-r--r-- | challenge-147/steven-wilson/perl/ch-01.pl | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/challenge-147/steven-wilson/perl/ch-01.pl b/challenge-147/steven-wilson/perl/ch-01.pl new file mode 100644 index 0000000000..ceefab2a3d --- /dev/null +++ b/challenge-147/steven-wilson/perl/ch-01.pl @@ -0,0 +1,39 @@ +#!/usr/bin/env perl +# Week 147 Task 1 +# Truncatable Prime +# Write a script to generate first 20 left-truncatable prime numbers in base 10. + +use strict; +use warnings; +use feature qw/ say /; +use Math::Prime::Util qw/ next_prime is_prime /; + +my @ltp = qw/ 2 /; +my $prime_number = 2; + +while ( scalar @ltp < 20 ) { + $prime_number = next_prime($prime_number); + if ( is_truncatable_prime($prime_number) ) { + push @ltp, $prime_number; + } +} + +sub is_truncatable_prime { + my $prime_number = shift; + my $truncatable = 1; + while ( length $prime_number > 0 ) { + if ( $prime_number =~ /0/ ) { # contains no 0 + $truncatable = 0; + last; + } + if ( not is_prime($prime_number) ) { + $truncatable = 0; + last; + } + $prime_number =~ /^[0-9]{1}([0-9]*)/; + $prime_number = $1; + } + return $truncatable; +} + +say join " ", @ltp; |
