Начнем с пустой последовательности с 1 индексом:
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,...
На n- м шаге мы заполняем все пробелы a (n) целыми числами больше 1, начиная с первого оставшегося пробела, где a (n) - это n- ая запись в последовательности.
После первого шага:
2,_,3,_,4,_,5,_,6,_,7,_,8,_,9,_,10,_,11,_,12,_,13,_,...
Обратите внимание, что a (1) должно быть 2, потому что первое целое число больше 1 равно 2.
На втором шаге мы заполняем каждые a (2) пробелы. Будет очевидно, что a (2) должно быть 2.
2,2,3,_,4,3,5,_,6,4,7,_,8,5,9,_,10,6,11,_,12,7,13,_,...
На третьем шаге мы заполняем каждые a (3) пробелы. Из последовательности а (3) = 3.
2,2,3,2,4,3,5,_,6,4,7,_,8,5,9,3,10,6,11,_,12,7,13,_,...
На четвертом шаге мы заполняем каждые a (4) пробелы. Из последовательности а (4) = 2.
2,2,3,2,4,3,5,2,6,4,7,_,8,5,9,3,10,6,11,3,12,7,13,_,...
В итоге:
2,2,3,2,4,3,5,2,6,4,7,2,8,5,9,3,10,6,11,3,12,7,13,2,...
задача
Дано n, вернуть n- й элемент последовательности.
Первые 10 000 000 членов последовательности можно найти здесь .
Это код-гольф . Кратчайший ответ в байтах побеждает. Применяются стандартные лазейки .