D. Spongebob and Squares
time limit per test
2 seconds
memory limit per test
256 megabytes
output
standard output
海绵宝宝已经厌倦了解释他奇怪的行为和计算,所以他只要求你找到所有n和m对,这样在由n行和m列组成的表中就有x个不同的正方形。例如,在一张3×5的桌子上,有15个正方形边长为1,8个正方形边长为2,3个正方形边长为3。3×5表格中不同方块的总数为15+8+3=26。
输入
输入的第一行包含一个整数x(1≤x≤1018),即Spongebob感兴趣的表格中的正方形数量。
输出
首先打印一个整数k–表的数量,其中正好有x个不同的正方形。
然后打印描述表格的k对整数。按增加n的顺序打印对,如果相等,则按增加m的顺序打印。
Spongebob is already tired trying to reason his weird actions and calculations, so he simply asked you to find all pairs of n and m, such that there are exactly x distinct squares in the table consisting of n rows and m columns. For example, in a 3×5 table there are 15 squares with side one, 8 squares with side two and 3 squares with side three. The total number of distinct squares in a 3×5 table is 15+8+3=26.
Output
First print a single integer
k− the number of tables with exactly
x distinct squares inside.
Then print
k pairs of integers describing the tables. Print the pairs in the order of increasing
n, and in case of equality− in the order of increasing
m.
Examples
Output
6
1 26
2 9
3 5
5 3
9 2
26 1
Note
In a
1×2 table there are
2 1×1 squares. So,
2 distinct squares in total.
In a
2×3 table there are
6 1×1 squares and
2 2×2 squares. That is equal to
8 squares in total.