aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-12-24 01:46:42 +0000
committerGitHub <noreply@github.com>2020-12-24 01:46:42 +0000
commit29f744c336da20257f6d80c336b5acbd6e8b2fc6 (patch)
tree46114615a32a7affddd870bd8dd8ddc9c11da260
parent97ed2c0af510735838bb2384af1c6715da4eeb76 (diff)
parentda493d8ab70e31de90b2d24c8ccd49f65aec535d (diff)
downloadperlweeklychallenge-club-29f744c336da20257f6d80c336b5acbd6e8b2fc6.tar.gz
perlweeklychallenge-club-29f744c336da20257f6d80c336b5acbd6e8b2fc6.tar.bz2
perlweeklychallenge-club-29f744c336da20257f6d80c336b5acbd6e8b2fc6.zip
Merge pull request #3060 from pauloscustodio/085-perl
Remove need to call sqrt()
-rw-r--r--challenge-085/paulo-custodio/perl/ch-2.pl11
1 files changed, 5 insertions, 6 deletions
diff --git a/challenge-085/paulo-custodio/perl/ch-2.pl b/challenge-085/paulo-custodio/perl/ch-2.pl
index a0fd2373bf..043628f460 100644
--- a/challenge-085/paulo-custodio/perl/ch-2.pl
+++ b/challenge-085/paulo-custodio/perl/ch-2.pl
@@ -32,8 +32,7 @@ say is_perfect_power($n);
sub is_perfect_power {
my($n) = @_;
- my $max_factor = sqrt($n)+1;
- find_primes($max_factor); # fill list of prime numbers up to sqrt(n)+1
+ find_primes($n); # fill list of prime numbers up to sqrt(n)
for my $prime (@primes) {
my $exp = 1;
my $power;
@@ -48,15 +47,15 @@ sub is_perfect_power {
}
sub find_primes {
- my($max) = @_;
+ my($n) = @_;
my $prime = 2;
do {
push @primes, $prime;
- for (my $f = $prime*2; $f < $max; $f += $prime) {
+ for (my $f = $prime*2; $f*$f <= $n; $f += $prime) {
$sieve[$f] = 1;
}
do {
$prime++
- } while ($prime < $max && $sieve[$prime]);
- } while ($prime < $max);
+ } while ($prime*$prime < $n && $sieve[$prime]);
+ } while ($prime*$prime < $n);
}