Фон
Когда я учился в начальной школе, мы играли в игру по математике, которая выглядит следующим образом.
Все дети сидят в большом кругу и считают по очереди, начиная с 1 .
Тем не менее, следующие цифры должны быть пропущены при подсчете:
- Числа, кратные 3 .
- Числа, имеющие 3 в десятичном представлении.
Первые 15 цифр, которые должны сказать дети:
1 2 4 5 7 8 10 11 14 16 17 19 20 22 25
Всякий раз, когда кто-то неправильно вводит число - говорит число, которое не входит в последовательность, или пропускает число, которое есть - он удаляется из круга. Это продолжается до тех пор, пока не останется только один ребенок.
задача
Вы плохо в этой игре, поэтому вы решили обмануть. Напишите программу или функцию, которая, учитывая номер последовательности, вычисляет следующий номер последовательности.
Вам не нужно обрабатывать числа, которые нельзя представить, используя собственный числовой тип вашего языка, при условии, что ваша программа работает правильно до ввода 251 и что ваш алгоритм работает для произвольно больших входных данных.
Вход и выход могут использовать любую удобную базу.
Поскольку вы должны скрывать свой код, он должен быть максимально коротким. На самом деле это код-гольф , поэтому выигрывает самый короткий код в байтах.
Контрольные примеры
1 -> 2
2 -> 4
11 -> 14
22 -> 25
29 -> 40
251 -> 254
7
было пропущено, когда я играл, но вы вместо этого сказали бы что-нибудь другое, вместо того, чтобы перейти к следующему номеру в строке.