Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

RE: RE: RE: RE: RE: sieve of erothenes

by husker (Chaplain)
on Jul 05, 2000 at 18:05 UTC ( #21128=note: print w/ replies, xml ) Need Help??


in reply to RE: RE: RE: RE: sieve of erothenes
in thread sieve of erothenes

Although what I propose may not be the "classic" sieve algorithm, in truth you only need to test up to the primes which are less than the square root of the target number. In other words, you need not divide by any primes greater than 4 when testing 16. Based on the associative property of multiplication, if you can show that no numbers <= sqrt(n) evenly divide n, then you have also shown that there are no numbers => sqrt(n) which evenly divide n. While this may add a few chars to your code, it reduces the compute time enormously when you get to large n's.

Update: Actually, it doesn't look like ANY of us are implenting the true Sieve algorithm. The algorithm can be found here: http://www.math.utah.edu/~alfeld/Eratosthenes.html. It does in fact use the sqrt(n) modification, but doesn't do divide-testing ... instead it does "weeding out" of multiples. Same result, different technique.

Update 2: my mistake ... Ase is indeed doing the correct Sieve algorithm by using his bit vector technique.


Comment on RE: RE: RE: RE: RE: sieve of erothenes
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://21128]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (14)
As of 2014-10-30 15:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (208 votes), past polls