ZERO - Đường đi đến số 0
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: admin

Mỗi một số nguyên dương đều có thể biểu diễn dưới dạng tích của hai số nguyên dương X, Y (X <= Y). Nếu như trong cách phân tích này ta thay X bởi X-1 còn Y bới Y+1 thì sau khi tính tích của chúng ta thu được hoặc là một số nguyên dương mới, hoặc là số 0.

Ví dụ: số 12 có 3 cách phân tích 1*12, 3*4, 2*6. Cách phân tích thứ nhất cho ta tích mới là 0=(1-0)*(12+1), cách phân tích thứ hai cho ta tích mới là 10=(3-1)*(4+1), còn cách phân tích thứ ba cho ta 7=(2-1)*(6+1).

Nếu như kết quả là khác không thì ta lặp lại thủ tục này đối với số thu được. Rõ ràng là nếu áp dụng liên tiếp thủ tục trên, cuối cùng ta sẽ đến được số 0, không phụ thuộc vào việc ta chọn cách phân tích nào tiếp tục.

Yêu cầu: Cho trước số nguyên dương N (1<=N<=10000), hãy đưa ra tất cả các số nguyên dương khác nhau có thể gặp trong việc áp dụng thủ tục đã mô tả đối với N.

Dữ liệu vào: số nguyên dương N

Kết quả ra: 

- Dòng đầu tiên ghi K là số lượng số thu được

- Trong các dòng tiếp theo lần lượt ghi K số thu được theo thứ tự tăng dần bắt đầu từ 0, mỗi dòng ghi 10 số cách nhau ít nhất một dấu trắng, trừ dòng cuối cùng có thể ít hơn 10 số.

Ví dụ

  • input
    12
    output
    6
    0 3 4 6 7 10
Back to Top