Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
ZERO - Đường đi dến số 0 |
Đường đi dến số 0
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 sao cho 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 từ file văn bản ZERO.INP chứa số nguyên dương N
Kết quả: Ghi ra file văn bản ZERO.OUT:
- 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ụ:
ZERO.INP
ZERO.OUT
12
6
0 3 4 6 7 10
Được gửi lên bởi: | Vương Trung Hiếu Nghĩa |
Ngày: | 2016-03-05 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C++ 4.3.2 CPP CPP14 PAS-GPC PAS-FPC |