Definizione
a(1) = 1
a(2) = 2
a(n)
è il numero più piccolok>a(n-1)
che evita qualsiasi progressione aritmetica a 3 termini ina(1), a(2), ..., a(n-1), k
.- In altre parole,
a(n)
il numero più piccolo èk>a(n-1)
tale che non esistex
,y
dove0<x<y<n
ea(y)-a(x) = k-a(y)
.
Esempio risolto
Per n=5
:
abbiamo a(1), a(2), a(3), a(4) = 1, 2, 4, 5
Se a(5)=6
, quindi 2, 4, 6
forma una progressione aritmetica.
Se a(5)=7
, quindi 1, 4, 7
forma una progressione aritmetica.
Se a(5)=8
, quindi 2, 5, 8
forma una progressione aritmetica.
Se a(5)=9
, quindi 1, 5, 9
forma una progressione aritmetica.
Se a(5)=10
non è possibile trovare alcuna progressione aritmetica.
Pertanto a(5)=10
.
Compito
Dato n
, output a(n)
.
Specifiche
n
sarà un numero intero positivo.- È possibile utilizzare 0 indicizzato anziché 1 indicizzato, nel qual caso
n
può essere0
. Si prega di indicarlo nella risposta se si utilizza 0-indicizzato.
punteggio
Poiché stiamo cercando di evitare la progressione aritmetica a 3 termini e 3 è un numero piccolo, il tuo codice dovrebbe essere il più piccolo (cioè breve) possibile, in termini di conteggio dei byte.
Casi test
I casi di test sono 1 indicizzati. Puoi usare 0-indexed, ma per favore specificalo nella tua risposta se lo fai.
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
Riferimenti
- WolframMathWorld
- OEIS A003278