Предположим, мы начинаем с бесконечного списка простых чисел:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, ...
Затем мы берем абсолютные различия между каждой парой чисел, многократно:
[1, 2, 2, 4, 2, 4, 2, 4, 6, 2, 6, 4, 2, 4, 6, 6, 2, 6, 4, ...
[1, 0, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 4, 4, 2, ...
[1, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 4, 0, 2, ...
[1, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 4, 2, ...
Обратите внимание, что ведущий номер равен 1 каждый раз. Гипотеза Гилбрита - это предсказание, что так будет всегда.
Единственный способ, чтобы старшее число перестало быть 1, это если следующий номер после него не был ни 0, ни 2. Единственный способ, которым второе число не было бы 0 или 2, это если бы число после этого не было ни 0 ни 2. И так далее.
Индекс самого раннего числа, кроме первого 1, который не является ни 0, ни 2, никогда не может уменьшиться более чем на 1 между последовательной парой последовательностей. Этот факт использовался, чтобы поставить очень сильную нижнюю границу, когда, если вообще, последовательность может не иметь 1 в качестве первого элемента.
В этом задании вам дадут индекс последовательности, и вы должны вывести индекс первого числа в этой последовательности, которое не является ведущим 1 и не является 0 или 2.
Например, в 4-й последовательности абсолютных разностей выше:
[1, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 4, 2, ...
Первая запись, которая не является ни нулем, ни двумя, кроме первой записи, является 15-й позицией, 14 индексированными нулями. Так что, если на входе было 4, вы бы вывели 14.
Для входов от 1 до 30 выходы должны быть:
[3, 8, 14, 14, 25, 24, 23, 22, 25, 59, 98, 97, 98, 97, 174, 176, 176, 176, 176, 291, 290, 289, 740, 874, 873, 872, 873, 872, 871, 870]
Это OEIS A000232 .
Предполагается, что у вас есть 1 проиндексированный вход и 0 проиндексированных выходов. Вы можете индексировать свои входы и выходы, начиная с любых постоянных целых чисел, при условии, что вы можете принять диапазон входных данных, соответствующий всем последовательностям.
Требования: Ваше решение должно работать не более 1 минуты при входе до 30. Если оно достаточно близко, чтобы зависеть от характеристик компьютера, оно разрешено.
Самый короткий код выигрывает.