Определение
a(1) = 1
a(2) = 2
a(n)
наименьшее число,k>a(n-1)
которое избегает любой 3-членной арифметической прогрессии вa(1), a(2), ..., a(n-1), k
.- Другими словами,
a(n)
это наименьшее числоk>a(n-1)
такое, что там не существуетx
,y
где0<x<y<n
иa(y)-a(x) = k-a(y)
.
Проработанный пример
Для n=5
:
У нас есть a(1), a(2), a(3), a(4) = 1, 2, 4, 5
Если a(5)=6
, то 2, 4, 6
сформируйте арифметическую прогрессию.
Если a(5)=7
, то 1, 4, 7
сформируйте арифметическую прогрессию.
Если a(5)=8
, то 2, 5, 8
сформируйте арифметическую прогрессию.
Если a(5)=9
, то 1, 5, 9
сформируйте арифметическую прогрессию.
Если a(5)=10
арифметическая прогрессия не найдена.
Поэтому a(5)=10
.
задача
Учитывая n
, выходной a(n)
.
Спекуляции
n
будет положительным целым числом.- Вы можете использовать 0-indexed вместо 1-indexed, в этом случае
n
может быть0
. Пожалуйста, укажите это в своем ответе, если вы используете 0-indexed.
счет
Поскольку мы пытаемся избежать 3-членной арифметической прогрессии, а 3 - это небольшое число, ваш код должен быть как можно меньшим (то есть коротким) с точки зрения количества байтов.
Testcases
Тестовые случаи 1-индексированы. Вы можете использовать 0-индексированный, но, если вы это сделаете, укажите это в своем ответе.
1 1
2 2
3 4
4 5
5 10
6 11
7 13
8 14
9 28
10 29
11 31
12 32
13 37
14 38
15 40
16 41
17 82
18 83
19 85
20 86
10000 1679657
Ссылки
- WolframMathWorld
- OEIS A003278