Definizione
a(1) = 1a(2) = 2a(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,ydove0<x<y<nea(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, 6forma una progressione aritmetica.
Se a(5)=7, quindi 1, 4, 7forma una progressione aritmetica.
Se a(5)=8, quindi 2, 5, 8forma una progressione aritmetica.
Se a(5)=9, quindi 1, 5, 9forma una progressione aritmetica.
Se a(5)=10non è possibile trovare alcuna progressione aritmetica.
Pertanto a(5)=10.
Compito
Dato n, output a(n).
Specifiche
nsarà un numero intero positivo.- È possibile utilizzare 0 indicizzato anziché 1 indicizzato, nel qual caso
npuò 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