Cho một số nguyên n
(trong đó n < 10001
) làm đầu vào, viết chương trình sẽ xuất các n
số Ulam đầu tiên . Một số Ulam được định nghĩa như sau:
- U 1 =
1
, U 2 =2
. - Vì
n > 2
, U n là số nguyên nhỏ nhất lớn hơn U n-1 , là tổng của hai số hạng khác nhau trước đó theo đúng một cách.
Ví dụ: U 3 là 3
(2 + 1), U 4 là 4
(3 + 1) (lưu ý rằng (2 + 2) không được tính là các thuật ngữ không khác biệt) và U 5 là 6
, (U 5 không phải là 5 bởi vì 5 có thể được biểu diễn dưới dạng 2 + 3 hoặc 4 + 1). Dưới đây là một vài số Ulam đầu tiên:
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
Đây là mã golf, vì vậy mục ngắn nhất sẽ thắng.
n
chúng ta phải xử lý là gì?