diff options
| author | Bob Lied <boblied+github@gmail.com> | 2023-07-06 07:30:12 -0500 |
|---|---|---|
| committer | Bob Lied <boblied+github@gmail.com> | 2023-07-06 07:30:12 -0500 |
| commit | 6b4ffbd7c7bc3b4f3948e2029411fbe2a6f7f4ae (patch) | |
| tree | ae396dec6d3162683d49539e020159d5eb6400c5 | |
| parent | 691757689ad317705f7a5593f31037d867ce4d15 (diff) | |
| download | perlweeklychallenge-club-6b4ffbd7c7bc3b4f3948e2029411fbe2a6f7f4ae.tar.gz perlweeklychallenge-club-6b4ffbd7c7bc3b4f3948e2029411fbe2a6f7f4ae.tar.bz2 perlweeklychallenge-club-6b4ffbd7c7bc3b4f3948e2029411fbe2a6f7f4ae.zip | |
Week 223 solutions
| -rw-r--r-- | challenge-223/bob-lied/perl/ch-1.pl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-223/bob-lied/perl/ch-1.pl b/challenge-223/bob-lied/perl/ch-1.pl index de9a6d4625..cecd089ec2 100644 --- a/challenge-223/bob-lied/perl/ch-1.pl +++ b/challenge-223/bob-lied/perl/ch-1.pl @@ -26,6 +26,42 @@ my $DoTest = 0; GetOptions("test" => \$DoTest, "verbose" => \$Verbose); exit(!runTest()) if $DoTest; +package Sieve; + +sub new($class, $n) +{ + my $self = { + _max => 10, + _sieve => [ false, false, true, true, false, true, false, true, false, false, false ], + }; + bless $self, $class; +} + +sub upto($self, $n) +{ + return if $n <= $self->{_max}; + push @{$self->{_sieve}}, (true) x ( $n - $self->{_max} ); + for (my $p = $n; $p*$p <= $n; $p++ ) + { + if ( $self->{_sieve}->[$p] ) + { + for (my $i = $p*$p ; $i <= $n ; $i += $p ) + { + $self->{_sieve}->[$i] = false; + } + } + } +} + +sub count($self, $n) +{ +} + +1; + +package main; + + sub sieve($n) { my @prime = (false, false, true, (true,false) x (($n-1)/2) ); |
