aboutsummaryrefslogtreecommitdiff
path: root/challenge-157
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-03-25 15:51:20 +0000
committerGitHub <noreply@github.com>2022-03-25 15:51:20 +0000
commit53190714138b1dbfa80564938faeb888f809e025 (patch)
treeb3e727e63df04809bff8c47f146f70fd10d81474 /challenge-157
parentac290841a3c0e9de0ba2ba97eca7d4bfbd1b974e (diff)
parent3b67ff4f2f80ba5515aa6fbce55f36b771c3b7bd (diff)
downloadperlweeklychallenge-club-53190714138b1dbfa80564938faeb888f809e025.tar.gz
perlweeklychallenge-club-53190714138b1dbfa80564938faeb888f809e025.tar.bz2
perlweeklychallenge-club-53190714138b1dbfa80564938faeb888f809e025.zip
Merge pull request #5828 from drbaggy/master
Fix examples...
Diffstat (limited to 'challenge-157')
-rw-r--r--challenge-157/james-smith/perl/ch-1.pl8
-rw-r--r--challenge-157/james-smith/perl/ch-2.pl19
2 files changed, 17 insertions, 10 deletions
diff --git a/challenge-157/james-smith/perl/ch-1.pl b/challenge-157/james-smith/perl/ch-1.pl
index c2c5045c41..6d6d85d498 100644
--- a/challenge-157/james-smith/perl/ch-1.pl
+++ b/challenge-157/james-smith/perl/ch-1.pl
@@ -17,11 +17,15 @@ my @TESTS = (
[ 1..170 ],
[ 1..171 ],
[ 1..999 ],
+ [ 1..9999 ],
+ [ 1..99999 ],
+ [ 1..999999 ],
+ [ 1..9999999 ],
);
-say sprintf 'AM = %10.6f, GM = %10.6f, HM = %10.6f', means( @{$_} ) for @TESTS;
+say sprintf 'AM = %15.6f, GM = %15.6f, HM = %15.6f', means( @{$_} ) for @TESTS;
say '';
-say sprintf 'AM = %10.6f, GM = %10.6f, HM = %10.6f', means_scalable( @{$_} ) for @TESTS;
+say sprintf 'AM = %15.6f, GM = %15.6f, HM = %15.6f', means_scalable( @{$_} ) for @TESTS;
sub means {
my ($am, $gm, $hm) = (0, 1, 0);
diff --git a/challenge-157/james-smith/perl/ch-2.pl b/challenge-157/james-smith/perl/ch-2.pl
index 955785c268..50d1bac432 100644
--- a/challenge-157/james-smith/perl/ch-2.pl
+++ b/challenge-157/james-smith/perl/ch-2.pl
@@ -8,20 +8,23 @@ use Test::More;
use Benchmark qw(cmpthese timethis);
use Data::Dumper qw(Dumper);
-my @TESTS = (
- [ 7, 1 ],
- [ 6, 0 ],
- [ 8, 1 ],
+## List of brazillian numbers... for testing...
+my %T = map { $_ => 1 } qw(
+ 7 8 10 12 13 14 15 16 18 20
+ 21 22 24 26 27 28 30 31 32 33 34 35 36 38 39 40
+ 42 43 44 45 46 48 50 51 52 54 55 56 57 58 60
+ 62 63 64 65 66 68 69 70 72 73 74 75 76 77 78 80
+ 81 82 84 85 86 87 88 90 91 92 93 94 95 96 98 99 100
);
-is( is_brazilian($_->[0]), $_->[1] ) foreach @TESTS;
+is( is_brazilian( $_ ), $T{$_}||0 ) for 4..100;
done_testing();
sub is_brazilian {
- O: for my $b (2.. $_[0]/2-1) {
- my $last = (my $n=$_[0])%$b;
- $n%$b==$last || next O while $n=int($n/$b);
+ O: for my $b ( 2 .. $_[0]/2 - 1 ) {
+ my $l = (my $n=$_[0]) % $b;
+ $n % $b == $l || next O while $n = int($n/$b);
return 1;
}
0;