Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
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.

Too bad we're not playing basketball.

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
Select or Download Code

Log In?
Username:
Password:

What's my password?
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 scrutinizing the Monastery: (11)
As of 2015-07-29 19:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (267 votes), past polls