Gửi bài giải


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

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Python

nguồn đề: http://ntucoder.net/Problem/Details/5558

Sau khi đã chán với việc pha chế kiếm 1 tỷ 1 tháng, người anh sinh năm 96 Bách Khoa chuyển ngang sang pha chế liền định khởi nghiệp. Nhưng để khởi nghiệp thì rất cần vốn, vậy nên anh đã quyết định tham gia Sắc Ma (1 chương trình hỗ trợ khởi nghiệp).

Nhưng để chứng minh rằng mình đủ khả năng là mình là 1 người tài năng, anh phải chơi cùng các nhà đầu tư 1 trò chơi đơn giản. Trò chơi có luật như sau:

Mỗi một số nguyên dương đều có thể biểu diễn dưới dạng tích của 2 số nguyên dương ~X~,~Y~ sao cho ~X<=Y~ . Nếu như trong 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) = 0~ , cách phân tích thứ hai cho ta tích mới 10 : ~(3-1)*(4+1) = 10~ , còn cách phân tích thứ ba cho ta ~7 : (2-1)*(6+1)=7~ . Nếu kết quả là khác ~0~ ta lại lặp lại thủ tục này đối với số thu được . Rõ ràng á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. Cho 1 số nguyên dương ~N~ yêu cầu đưa ra tất cả số nguyên dương có thể trong các cách phân tích trên.

Vì vốn là 1 vozer lâu năm, tuy có thể trên thông thiên văn dưới tường địa lý nhưng anh lại rất dốt toán. Mọi người hãy giúp người anh phân tích các con số này nhé.

Input

Gồm 1 dòng duy nhất chứa 1 số nguyên dương ~N~ ~(1 \leq N \leq 10000)~

Output

Dòng đầu tiên là số lượng số phân tích được

Dòng thứ hai bao gồm các số phân biệt nhận được sau quá trình phân tích và được sắp xếp theo thứ tự tăng dần.

Sample Input

12

Sample Output

6
0 3 4 6 7 10

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.