Dato un numero intero n
(dove n < 10001
) come input, scrivere un programma che produrrà i primi n
numeri Ulam . Un numero Ulam è definito come segue:
- U 1 =
1
, U 2 =2
. - Perché
n > 2
, U n è il numero intero più piccolo che è maggiore di U n-1 che è la somma di due termini precedenti distinti esattamente in un modo.
Ad esempio, U 3 è 3
(2 + 1), U 4 è 4
(3 + 1) (nota che (2 + 2) non conta poiché i termini non sono distinti), e U 5 è 6
, (U 5 non è 5 perché 5 può essere rappresentato come 2 + 3 o 4 + 1). Ecco i primi numeri Ulam:
1, 2, 3, 4, 6, 8, 11, 13, 16, 18, 26, 28, 36, 38, 47, 48, 53, 57, 62, 69, 72, 77, 82, 87, 97, 99
Questo è il golf del codice, quindi vince l'ingresso più breve.
n
che dobbiamo gestire?