http://stancho.roncho.net/Algorithms/Primes.html