primes Table Function
primes() – Returns an infinite table with a single prime column (UInt64) that contains prime numbers in ascending order, starting from 2. Use LIMIT (and optionally OFFSET) to restrict the number of rows.
primes(N) – Returns a table with the single prime column (UInt64) that contains the first N prime numbers, starting from 2.
primes(N, M) - Returns a table with the single prime column (UInt64) that contains M prime numbers starting from the N-th prime (0-based).
primes(N, M, S) - Returns a table with the single prime column (UInt64) that contains M prime numbers starting from the N-th prime (0-based) with step S (by prime index). The returned primes correspond to indices N, N + S, N + 2S, ..., N + (M - 1)S. S must be >= 1.
This is similar to the system.primes system table.
The following queries are equivalent:
And the following queries are equivalent:
Examples
The first 10 primes.
The first prime greater than 1e15.
The first 7 Mersenne primes.
Note
- The fastest forms are the plain range and point-filter variants that use the default step (
1), for exampleprimes(N)orprimes() LIMIT N. These forms use an optimized prime generator to compute very large primes efficiently. For example, the following query executes almost instantly:
- Using a non-zero offset and/or step greater than 1 (
primes(offset, count)/primes(offset, count, step)) may be slower because additional primes may need to be generated and skipped internally. If you don't need an offset or step, omit them.