#HT1046. [普及]连续数字的和

[普及]连续数字的和

题目背景

经过多天前缀和的训练,叮叮老师对前缀和算法以及优化程序的时间复杂度有了更深层次的理解😀相信你也是这样的!

题目描述

对于一个正整数n,我们可以找到一些连续的数字使其累加起来的和刚好等于n,比如对于数字15,就是1到5之间所有数字的和。

输入格式

一个数字 n ,当然 n 可能会很大。

输出格式

输出可能有多行,每行两个正整数 l 和 r ,用空格隔开,表示从 l 到 r (包括 l 和 r )的所有数字之和为 n。

题目数据保证有解,如果有多个结果,你需要输出多行,并且是按照 l 从小到大顺序输出的。

样例

15
1 5
4 6
7 8
1000000
1243 1882
1288 1912
7749 7876
7938 8062
39988 40012
199998 200002

数据范围

对于60%的数据:10n100010\le n\le1000

对于100%的数据:10n2×10610\le n\le2×10^6

提示

此题使用前缀和可得到大概70的分数,但是想得到满分,还需要一点优化,让程序不要进行一些不必要的循环。