The list of prime numbers up to n is generated using the "sieve of
Erasthostenes". This approach is reasonably fast, but may require a lot of
main memory when n is large. primes2 computes first all primes up to sqrt(n2) and then
applies a refined sieve on the numbers from n1 to n2, thereby
drastically reducing the need for storing long arrays of numbers.
nextPrime finds the next prime number greater than n. In
general the next prime will occur in the interval [n+1,n+log(n)].
twinPrimes uses primes2 and uses diff to find all
twin primes in the given interval.
In double precision arithmetic integers are represented exactly only up to
2^53 - 1, therefore this is the maximal allowed value.