Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use POSIX;
- my $regexp = '(\d)(\d)(\d)(\d)(\3)(\2)(\1)';
- my $sqrt = 0;
- my $palindrome;
- my $counter;
- if(defined($ARGV[0])){
- $regexp = "";
- for($counter = 0; $counter < $ARGV[0];$counter++){
- if($counter > ceil($ARGV[0]/2)-1){
- $regexp .= "(\\".($ARGV[0]-$counter).")";
- }else{
- $regexp .= "(\\d)";
- }
- }
- }
- while(read){
- while ($_ =~ /$regexp/g) {
- $palindrome = $&;;
- #print $palindrome."\n";
- if($palindrome % 2 == 0){
- next;
- }
- $sqrt = sqrt($palindrome);
- for($counter = 3; $counter <= $sqrt; $counter+=2){
- if($palindrome % $counter == 0){
- last;
- }
- }
- if($counter > $sqrt){
- print $palindrome."\n";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement