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.
nque temos que lidar?