Dado um número inteiro n
(onde n < 10001
) como entrada, escreva um programa que produzirá os primeiros n
números Ulam . Um número Ulam é definido da seguinte maneira:
- L 1 =
1
, L 2 =2
. - Pois
n > 2
, U n é o menor número inteiro maior que U n-1, que é a soma de dois termos anteriores distintos , exatamente de uma maneira.
Por exemplo, L 3 representa 3
(2 + 1), L 4 representa 4
(3 + 1) (Note-se que (2 + 2) não conta que as condições não são distintas), e L 5 seja 6
, (L 5 não é 5 porque 5 pode ser representado como 2 + 3 ou 4 + 1). Aqui estão os primeiros números da 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
Isso é código de golfe, portanto a entrada mais curta vence.
n
que temos que lidar?