Yury_rsnКод:
? p=23; a=20332472-1;\\Не знаю почему у них числа чётные, интервал вправо будет определён автоматически по числу p
? print1(factor(a)[1,1]); b=a+2; while((f=factor(b)[1,1])<=p, print1(", ",f); b+=2); print(", ",f);
73, 3, 5, 11, 3, 13, 23, 3, 7, 19, 3, 17, 5, 3, 11, 7, 3, 5, 13, 3, 20332511
\\Другой вариант, с началом и длиной интервала
? d=40; a=20332472-1; forstep(x=a,a+d,2, print1(factor(x)[1,1], ", "));
73, 3, 5, 11, 3, 13, 23, 3, 7, 19, 3, 17, 5, 3, 11, 7, 3, 5, 13, 3, 20332511,
\\Вариант предыдущего кода с заменой неразложенных чисел на прочерки
? d=40; a=20332472-1; forstep(x=a,a+d,2, print1(if((f=factor(x)[1,1])>=a, "--", f), ", "));
73, 3, 5, 11, 3, 13, 23, 3, 7, 19, 3, 17, 5, 3, 11, 7, 3, 5, 13, 3, --,
К сожалению
factor для простых (т.е. если не найдёт делителей) возвращает сам аргумент, потому и 20332511 вместо 1, но думаю это не сильно принципиально, да и показал как заменить на что угодно.
Для очень больших чисел (типа 29# и более) рекомендую заменить
factor(x) на
factor(x,10^6), чтобы делители искались побыстрее, лишь до миллиона.
Yury_rsnИмейте в виду на всякий случай что числа начала интервалов в
https://oeis.org/A048670/a048670_5.txt вовсе не все являются минимально возможными, они таковы лишь по 29#. Далее примерно половина из них даже больше p#, чего для минимального числа никак быть не может. И даже взяв их по модулю p# правильного минимального числа всё равно не получается (во всяком случае далеко не ля всех).
Т.е. начала интервалов правильные, но не минимальные.
-- 15.11.2021, 12:18 --Количество, отбрасываемых вычетов, делящихся на
![$p_n$ $p_n$](https://dxdy-02.korotkov.co.uk/f/d/c/a/dcacd0c2df330290b04661ab76e2a62c82.png)
в
![$p_n$ $p_n$](https://dxdy-02.korotkov.co.uk/f/d/c/a/dcacd0c2df330290b04661ab76e2a62c82.png)
# обратно пропорциальна
![$p_n$ $p_n$](https://dxdy-02.korotkov.co.uk/f/d/c/a/dcacd0c2df330290b04661ab76e2a62c82.png)
, а длина праймориала
![$p_n$ $p_n$](https://dxdy-02.korotkov.co.uk/f/d/c/a/dcacd0c2df330290b04661ab76e2a62c82.png)
# прямо пропорциональна
![$p_n$ $p_n$](https://dxdy-02.korotkov.co.uk/f/d/c/a/dcacd0c2df330290b04661ab76e2a62c82.png)
, поэтому количество вычислений не должно существенно возрастать с ростом
![$p_n$ $p_n$](https://dxdy-02.korotkov.co.uk/f/d/c/a/dcacd0c2df330290b04661ab76e2a62c82.png)
.
Чушь: при переходе от
![$p_n$ $p_n$](https://dxdy-02.korotkov.co.uk/f/d/c/a/dcacd0c2df330290b04661ab76e2a62c82.png)
к
![$p_{n+1}$ $p_{n+1}$](https://dxdy-03.korotkov.co.uk/f/2/4/2/2427111c3232acbd353a3a0cdf7ce25982.png)
шаг проверяемых вычетов увеличивается
на ![$p_{n+1}-p_n$ $p_{n+1}-p_n$](https://dxdy-03.korotkov.co.uk/f/6/8/5/68569772df027bb7aac08b045954649b82.png)
, а размер интервала растёт
в
раз. Надеюсь Вы понимаете отличие сложения от умножения?
В
![$p_n\#$ $p_n\#$](https://dxdy-03.korotkov.co.uk/f/2/9/f/29f8f87cb377a401b16c59acb58dce9482.png)
проверяется
![$\frac{p_n\#}{p_n}=p_{n-1}\#$ $\frac{p_n\#}{p_n}=p_{n-1}\#$](https://dxdy-02.korotkov.co.uk/f/d/6/b/d6b8f4aa68c8c3af49e6fc0ac5367d7f82.png)
вычетов (с точностью до небольшого коэффициента), т.е. количество проверяемых вычетов растёт практически пропорционально
![$p_n\#$ $p_n\#$](https://dxdy-03.korotkov.co.uk/f/2/9/f/29f8f87cb377a401b16c59acb58dce9482.png)
несмотря на увеличение расстояния между проверяемыми вычетами.
Почему Вы прежде чем спорить или что-то утверждать не проверите сами (хоть руками/калькулятором) хотя бы малые числа?! Ведь будет же видно уже на 5#, на 7#, на 11#, на 13#.
Кстати 13# последний примориал, у которого первый максимальный интервал ограничен простыми числами с обеих сторон. У всех дальше лишь не более чем с одной стороны.