diff options
| -rw-r--r-- | challenge-167/adam-russell/perl/ch-1.pl | 8 | ||||
| -rw-r--r-- | challenge-167/adam-russell/perl/ch-2.pl | 6 |
2 files changed, 8 insertions, 6 deletions
diff --git a/challenge-167/adam-russell/perl/ch-1.pl b/challenge-167/adam-russell/perl/ch-1.pl index 7dda485fdc..4bfd74d9ac 100644 --- a/challenge-167/adam-russell/perl/ch-1.pl +++ b/challenge-167/adam-russell/perl/ch-1.pl @@ -7,13 +7,16 @@ use boolean; use Math::Primality qw/is_prime/; sub is_circular_prime{ - my($x) = @_; + my($x, $circular) = @_; my @digits = split(//, $x); + my @rotations; for my $i (0 .. @digits - 1){ @digits = (@digits[1 .. @digits - 1], $digits[0]); my $candidate = join("", @digits) + 0; + push @rotations, $candidate; return false if !is_prime($candidate); } + map{$circular->{$_} = -1} @rotations; return true; } @@ -23,9 +26,8 @@ sub first_n_circular_primes{ my %circular; my @circular_primes; { - if(is_circular_prime($i) && !$circular{join("", sort {$a <=> $b} split(//, $i))}){ + if(!$circular{$i} && is_circular_prime($i, \%circular)){ push @circular_primes, $i; - $circular{join("", sort {$a <=> $b} split(//, $i))} = -1; } $i++; redo if @circular_primes < $n; diff --git a/challenge-167/adam-russell/perl/ch-2.pl b/challenge-167/adam-russell/perl/ch-2.pl index ba38e6c0dd..6b2214bb1c 100644 --- a/challenge-167/adam-russell/perl/ch-2.pl +++ b/challenge-167/adam-russell/perl/ch-2.pl @@ -34,7 +34,7 @@ sub gamma{ } MAIN:{ - print gamma(3) . "\n"; - print gamma(5) . "\n"; - print gamma(7) . "\n"; + printf("%.2f\n",gamma(3)); + printf("%.2f\n",gamma(5)); + printf("%.2f\n",gamma(7)); }
\ No newline at end of file |
