aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2021-10-29 13:57:40 +0100
committerdrbaggy <js5@sanger.ac.uk>2021-10-29 13:57:40 +0100
commit97c29e8d390fa4161e350707866c8d2351ac5c82 (patch)
treeeaacc9978126ad4897804ca8b573d06249f29c63
parentde97d1e8c036c3a78f840a95eb63e1b37c9f230f (diff)
downloadperlweeklychallenge-club-97c29e8d390fa4161e350707866c8d2351ac5c82.tar.gz
perlweeklychallenge-club-97c29e8d390fa4161e350707866c8d2351ac5c82.tar.bz2
perlweeklychallenge-club-97c29e8d390fa4161e350707866c8d2351ac5c82.zip
Tidied
-rw-r--r--challenge-136/james-smith/perl/ch-1.pl4
-rw-r--r--challenge-136/james-smith/perl/ch-2.pl5
2 files changed, 6 insertions, 3 deletions
diff --git a/challenge-136/james-smith/perl/ch-1.pl b/challenge-136/james-smith/perl/ch-1.pl
index d38d98b87c..3638053bc6 100644
--- a/challenge-136/james-smith/perl/ch-1.pl
+++ b/challenge-136/james-smith/perl/ch-1.pl
@@ -9,6 +9,7 @@ use Benchmark qw(cmpthese timethis);
use Data::Dumper qw(Dumper);
my @TESTS = (
+ [ [31,96], 0 ],
[ [8,24], 1 ],
[ [26,39], 0 ],
[ [4,10], 1 ],
@@ -21,7 +22,8 @@ done_testing();
sub friendly {
my($a,$b) = @_;
($a,$b) = ($b,$a%$b) while $b; ## Get GCD
- $a>>=1 until $a&1; ## Remove trailing binary digits
+ return 0 if $a == 1; ## Numbers are co-prime so not friendly
+ $a>>=1 until $a&1; ## Remove trailing binary 0 digits
return $a == 1 ? 1 : 0; ## For powers of two $a == 1
}
diff --git a/challenge-136/james-smith/perl/ch-2.pl b/challenge-136/james-smith/perl/ch-2.pl
index 410c95d2ba..be1466063e 100644
--- a/challenge-136/james-smith/perl/ch-2.pl
+++ b/challenge-136/james-smith/perl/ch-2.pl
@@ -10,9 +10,10 @@ use Data::Dumper qw(Dumper);
my @TESTS = (
[ 16, 4 ],
+ [ 99_999, 192 ],
[ 9, 2 ],
[ 15, 2 ],
- [ 99_999, 192 ],
+ [ 8, 3 ],
);
my @fib = (1,2);
@@ -24,7 +25,7 @@ done_testing();
sub fib_sum {
my $n = shift;
push @fib, $fib[-1]+$fib[-2] while $n > $fib[-1];
- return sum( $n, @fib[0..@fib-2] );
+ return sum( $n, grep { $_ <= $n } @fib );
}
sub sum {