游客 Signup | Login
中文 | En

3280 - 连续自然数和

 

<span style="font-family:宋体;font-size:10.5pt;font-weight:normal;">对一个给定的自然数<span>M</span>,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为<span>M</span>。<span></span></span>

<span style="font-family:宋体;font-size:10.5pt;font-weight:normal;">例子:<span>1998+1999+2000+2001+2002 = 10000</span>,所以从<span>1998</span>到<span>2002</span>的一个自然数段为<span>M=10000</span>的一个解。<span></span></span>

输入
包含一个整数的单独一行给出M的值(10 <= M <= 2,000,000)。
输出
每行两个自然数,给出一个满足条件的连续自然数段中的第一个数和最后一个数,两数之间用一个空格隔开,所有输出行的第一个按从小到大的升序排列,对于给定的输入数据,保证至少有一个解。
样例
combo.in
10000
combo.out

<span>18 142 </span>

<span>297 328 </span>

<span>388 412 </span>

<span>1998 2002</span>

Input

Output

Examples

Input


                

Output


                

Solution C++

#include<iostream>
using namespace std;
int main()
{
	int m;
	cin>>m;
	for (int i=1; i<m/2; i++)
	{
		int sum=0;
		for (int j=i; j<m/2; j++)
		{
			sum+=j;
			if (sum==m)
			{
				 cout<<i<<" "<<j<<endl;
				 break;
			}
			if (sum>m) break;
		}
	}
	return 0;
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题