CF599D Spongebob and Squares

题目描述

海绵宝宝已经厌倦了解释他奇怪的行为和计算,所以他干脆请你找出所有满足条件的 $ n $ 和 $ m $ 的对,使得在一个由 $ n $ 行 $ m $ 列组成的表格中,恰好有 $ x $ 个不同的正方形。例如,在一个 $ 3\times5 $ 的表格中,有 $ 15 $ 个边长为 $ 1 $ 的正方形,$ 8 $ 个边长为 $ 2 $ 的正方形,以及 $ 3 $ 个边长为 $ 3 $ 的正方形。$ 3\times5 $ 的表格中不同正方形的总数为 $ 15+8+3=26 $。

输入格式

输入的第一行包含一个整数 $ x $($ 1 \leq x \leq 10^{18} $),表示海绵宝宝感兴趣的表格中包含的正方形的数量。

输出格式

首先输出一个整数 $ k $,表示恰好包含 $ x $ 个不同正方形的表格数量。 接下来输出 $ k $ 对整数,每对整数描述一个表格。按照 $ n $ 从小到大的顺序输出对,若 $ n $ 相同,则按 $ m $ 从小到大的顺序输出。

说明/提示

在一个 $ 1\times2 $ 的表格中,有 $ 2 $ 个 $ 1\times1 $ 的正方形,因此总共有 $ 2 $ 个不同的正方形。 在一个 $ 2\times3 $ 的表格中,有 $ 6 $ 个 $ 1\times1 $ 的正方形和 $ 2 $ 个 $ 2\times2 $ 的正方形,合计 $ 8 $ 个正方形。 由 ChatGPT 5 翻译