laziness, impatience, and hubris PerlMonks

### (kudra: basketball) Re: (Golf): Sieve of Eratosthenes

by kudra (Vicar)
 on May 19, 2001 at 15:44 UTC ( #81705=note: print w/ replies, xml ) Need Help??

in reply to (Golf): Sieve of Eratosthenes

Much worse than the previous offering and just plain bad approaches (what can I say--I'm bad at golf and I wanted to play with using an array. look here if you want to see some shorter solutions):

```# Example use: @result = sieve(60);
sub sieve {
my\$m=pop;my@l=(0..\$m);for(my\$x=0;\$x<\$m;\$x++){next if(\$l[\$x]<2);my \$i=2
+;my\$n=0;for(;\$n<\$m;\$i++){\$n=\$x*\$i;next if(\$n>\$m);\$l[\$
n]=0}}@l=grep{\$l[\$_]}(0..\$m)
}
152.

```# Example of use: sieve(60);

sub sieve {
my\$m=pop;@_=(2..\$m);for my \$c(@_){my%b=map{\$_,1}grep{(\$_%\$c)==0}(\$c+1.
+.\$m);@_=grep{!\$b{\$_}}@_}die"@_\n"
}
104.

Update

```# Example of use: @result = sieve(60);

sub sieve{
L:for(2..pop){for my \$b(2..\$_-1){next L if(\$_%\$b<1)}push@_,\$_}@_
}

65. Does not mark of multiples but tests each number (only as far as needed, at least), so not really allowed.

Comment on (kudra: basketball) Re: (Golf): Sieve of Eratosthenes

Create A New User
Node Status?
node history
Node Type: note [id://81705]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (10)
As of 2015-08-28 18:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?