The Sieve of Eratosthenes is an algorithm for finding all prime numbers up to some limit n
.
It is attributed to Eratosthenes of Cyrene, an ancient Greek mathematician.
n + 1
positions (to represent the numbers 0
through n
)0
and 1
to false
, and the rest to true
p = 2
(the first prime number)false
all the multiples of p
(that is, positions 2 * p
, 3 * p
, 4 * p
… until you reach the end of the array)p
that is true
in the array. If there is no such position, stop. Otherwise, let p
equal this new number (which is the next prime), and repeat from step 4When the algorithm terminates, the numbers remaining true
in the array are all
the primes below n
.
An improvement of this algorithm is, in step 4, start marking multiples
of p
from p * p
, and not from 2 * p
. The reason why this works is because,
at that point, smaller multiples of p
will have already been marked false
.
The algorithm has a complexity of O(n log(log n))
.