-
primes() – Devuelve una tabla infinita con una única columna prime (UInt64) que contiene números primos en orden ascendente, a partir de 2. Use LIMIT (y, opcionalmente, OFFSET) para limitar el número de filas.
-
primes(N) – Devuelve una tabla con una única columna prime (UInt64) que contiene los primeros N números primos, a partir de 2.
-
primes(N, M) – Devuelve una tabla con una única columna prime (UInt64) que contiene M números primos a partir del primo en la posición N (base 0).
-
primes(N, M, S) – Devuelve una tabla con una única columna prime (UInt64) que contiene M números primos a partir del primo en la posición N (base 0), con paso S según el índice de los primos. Los primos devueltos corresponden a los índices N, N + S, N + 2S, ..., N + (M - 1)S. S debe ser >= 1.
Esto es similar a la tabla del sistema system.primes.
Las siguientes consultas son equivalentes:
Las siguientes consultas también son equivalentes:
Los 10 primeros números primos.
El primer número primo mayor que 1e15.
Resuelve una condición modular sobre números primos en un rango muy grande: encuentra el primer primo p >= 10^15 tal que p módulo 65537 sea 1.
Los primeros 7 números primos de Mersenne.
- Las formas más rápidas son las consultas simples de rango y de filtrado por punto que usan el paso predeterminado (
1), por ejemplo, primes(N) o primes() LIMIT N. Estas formas usan un generador de números primos optimizado para calcular números primos muy grandes de manera eficiente.
- En las fuentes no acotadas (
primes() / system.primes), se pueden aplicar durante la generación filtros simples por valor, como prime BETWEEN ..., prime IN (...) o prime = ..., para restringir los rangos de valores que se buscan. Por ejemplo, la siguiente consulta se ejecuta casi al instante:
- Esta optimización del rango de valores no se aplica a las funciones de tabla acotadas (
primes(N), primes(offset, count[, step])) con WHERE, porque esas variantes definen una tabla finita en función del índice de números primos, y el filtro debe evaluarse después de generar esa tabla para preservar la semántica.
- Usar un offset distinto de cero y/o un step mayor que 1 (
primes(offset, count) / primes(offset, count, step)) puede ser más lento, porque internamente puede ser necesario generar y omitir números primos adicionales. Si no necesita offset ni step, omítalos.
Última modificación el 2 de julio de 2026