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