aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Lied <boblied+github@gmail.com>2023-07-06 07:30:12 -0500
committerBob Lied <boblied+github@gmail.com>2023-07-06 07:30:12 -0500
commit6b4ffbd7c7bc3b4f3948e2029411fbe2a6f7f4ae (patch)
treeae396dec6d3162683d49539e020159d5eb6400c5
parent691757689ad317705f7a5593f31037d867ce4d15 (diff)
downloadperlweeklychallenge-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.pl36
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) );