Étant donné un entier n
(où n < 10001
) en entrée, écrivez un programme qui produira les premiers n
nombres Ulam . Un nombre Ulam est défini comme suit:
- U 1 =
1
, U 2 =2
. - En effet
n > 2
, U n est le plus petit entier supérieur à U n-1 qui est la somme de deux termes antérieurs distincts d' une seule manière.
Par exemple, U 3 est 3
(2 + 1), U 4 est 4
(3 + 1) (notez que (2 + 2) ne compte pas car les termes ne sont pas distincts), et U 5 est 6
, (U 5 n'est pas 5 car 5 peut être représenté par 2 + 3 ou 4 + 1). Voici les premiers nombres d'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
C'est le golf de code, donc l'entrée la plus courte gagne.
n
nous devons gérer?