aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Russell <ac.russell@live.com>2022-06-06 11:00:38 -0400
committerAdam Russell <ac.russell@live.com>2022-06-06 11:00:38 -0400
commit96dbfe7244eb1c2b2b735af846cc5cb14cf8d1a9 (patch)
tree7c6a559f77b43f6202d6852b5daf19689345ee11
parent8d088c47f0e6d7cab02f35914a822b1e7f1877ab (diff)
downloadperlweeklychallenge-club-96dbfe7244eb1c2b2b735af846cc5cb14cf8d1a9.tar.gz
perlweeklychallenge-club-96dbfe7244eb1c2b2b735af846cc5cb14cf8d1a9.tar.bz2
perlweeklychallenge-club-96dbfe7244eb1c2b2b735af846cc5cb14cf8d1a9.zip
cleaned up code
-rw-r--r--challenge-167/adam-russell/perl/ch-1.pl8
-rw-r--r--challenge-167/adam-russell/perl/ch-2.pl6
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