Pagini recente » Cod sursa (job #490958) | Cod sursa (job #2344131) | Cod sursa (job #1926010) | Cod sursa (job #2369158) | Cod sursa (job #1713386)
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("consecutive.in");
ofstream out("consecutive.out");
int v[10000001],cat[10000001];
int sumak(unsigned int n,int k)
{
int a,b;
a=(n-(k*(k-1)/2))/k;
b=a+k
-1;
if((a+b)*k/2==n)
return a;
else
return -1;
}
int main()
{
unsigned int n;
int t,cate,cnt,i,j;
in>>t;
for(i=1;i<=t;i++)
{
in>>n;
cate=2;
cnt=0;
j=0;
while(cate<=sqrt(2*n))
{
if(sumak(n,cate)!=-1)
{
j++;
cnt++;
v[j]=sumak(n,cate);
cat[j]=cate;
}
cate++;
}
out<<cnt<<'\n';
for(j=1;j<=cnt;j++)
out<<v[j]<<" "<<v[j]+cat[j]-1<<'\n';
}
return 0;
}