Табличная функция primes
primes() – возвращает бесконечную таблицу с единственным столбцом prime (UInt64), содержащим простые числа в порядке возрастания, начиная с 2. Используйте LIMIT (и при необходимости OFFSET), чтобы ограничить количество строк.
primes(N) – возвращает таблицу с единственным столбцом prime (UInt64), содержащим первые N простых чисел, начиная с 2.
primes(N, M) – возвращает таблицу с единственным столбцом prime (UInt64), содержащим M простых чисел, начиная с N-го простого числа (индексация с нуля).
primes(N, M, S) – возвращает таблицу с единственным столбцом prime (UInt64), содержащим M простых чисел, начиная с N-го простого числа (индексация с нуля) с шагом S (по индексу простого числа). Возвращаемые простые числа соответствуют индексам N, N + S, N + 2S, ..., N + (M - 1)S. S должен быть >= 1.
Это аналогично системной таблице system.primes.
Следующие запросы эквивалентны:
Следующие запросы эквивалентны:
Примеры
Первые 10 простых чисел.
Первое простое число, большее 1e15.
Первые семь простых чисел Мерсенна.
Примечание
- Самые быстрые формы — это простые варианты с диапазоном и точечным фильтром, которые используют шаг по умолчанию (
1), напримерprimes(N)илиprimes() LIMIT N. Эти формы используют оптимизированный генератор простых чисел для эффективного вычисления очень больших простых чисел. Например, следующий запрос выполняется почти мгновенно:
- Использование ненулевого смещения и/или шага больше 1 (
primes(offset, count)/primes(offset, count, step)) может работать медленнее, поскольку функции может потребоваться сгенерировать дополнительные простые числа и затем отбросить их. Если вам не нужны смещение или шаг, просто не указывайте их.