Пусть
- это праймориал, произведение первых
простых чисел.
Пусть
это
A007814, максимальная степень двойки на которую делится
. Здесь
Присвоим
и далее будем присваивать
до тех пор, пока
- либо
- либо количество шагов превысило
Пусть
возвращает количество шагов, необходимое для выполнения первого условия либо возвращает
при выполнении второго условия.
Пусть также
это минимальное
, такое, что
.
И, наконец, пусть
Здесь квадратные скобки это скобки Айверсона, которые возвращают
если условие внутри них соблюдается и возвращают
в противном случае. По сути, этим условием мы проверяем наличие как минимум одного значения
.
Отфильтруем значения
для фиксированного
и произвольных
. Можно заметить, что все
имеют форму
где
и
это некоторые константы.
Можно заметить, что если записать
в виде
где
, то при фиксированном
и произвольных
значения
и
одинаковые.
Вот все, что мне удалось получить на данный момент:
Т.е. что мы ищем? Мы ищем два первых значения
, таких, что
при фиксированном
и даже не для всех
, а только для
. Через НОД этих двух значений мы находим
.
Вот прога:
Код:
p(n) = prod(j=1, n, prime(j))
a1(n, m, k) = my(A = n, B = 0); until(A%n == 0 || B>2, A+=m*2^(k*valuation(A,2)); B++); if(B < 3, B)
a2(m, k) = my(A = 1); until(a1(A, m, k) == 0, A++); A
a3(m, k) = my(A = a2(m, k)); sum(j=1, A-1, a1(j, m, k)) > (A-1)
v1 = vector(2, i, 0);
z=1; for(k=1,2, while(!(z%2 && a3(p(24)*z/2, 2^3)==1), z++); v1[k]=z; z++;);
print(gcd(v1))
Она ищет
если известно
.
Я думаю, что
для
это просто совпадение с факториалами.
Хотелось бы узнать, какие будут
и
для
.
Я не помещаю тему на форуме Околонаучный софт, поскольку предполагаю, что значения могут быть получены гораздо более легким путем, основанном на правильных рассуждениях.