Pagini recente » Cod sursa (job #1456067) | Cod sursa (job #2486141) | Cod sursa (job #1207435) | Cod sursa (job #1281007) | Cod sursa (job #1709150)
#include<iostream>
#include<fstream>
using namespace std;
long n,count;
long lower[100000], upper[100000];
int main(void){
ifstream fin("consecutive.in");
ofstream fout("consecutive.out");
int t;
fin>>t;
while(t--){
fin>>n;
count=0;
long nmax, nmin=n;
for(nmax=n/2+1;nmax>=2;nmax--)
for(nmin=std::min(nmin,nmax-2);nmin>=0;nmin--)
{
long value= ((nmax-nmin)*(nmax+nmin+1))/2;
if(value>=n)
{
if(value==n)
{
lower[count]=nmin+1;
upper[count++]=nmax;
}
break;
}
}
fout<<count<<"\n";
for(int i=0;i<count;i++)
fout<<lower[i]<<" "<<upper[i]<<"\n";
}
fout.close();
fin.close();
return 0;
}