5014: Spongebob and Squares

内存限制:256 MB 时间限制:2 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:3 通过:3

题目描述

D. Spongebob and Squares
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
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.
Input
The first line of the input contains a single integer x (1≤x≤1018)− the number of squares inside the tables Spongebob is interested in.
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
Input
26
Output
6
1 26
2 9
3 5
5 3
9 2
26 1
Input
2
Output
2
1 2
2 1
Input
8
Output
4
1 8
2 3
3 2
8 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.

输入格式

输出格式

输入样例 复制


输出样例 复制


数据范围与提示