Đường đi đến 0

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Python
Đường đi đến 0
Mô tả và yêu cầu

Đường đi đến 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ố
ngyê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-1)*(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

Tải PDF gốc


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.