Pagini recente » Cod sursa (job #299415) | Cod sursa (job #1339454) | Cod sursa (job #3187590) | Cod sursa (job #836458) | Cod sursa (job #1710309)
#include <cstdio>
#define MAXN 65536
int v[2][MAXN];
int main(){
FILE*fi,*fout;
int pas,m,i,t;
long long n,x,rez,l;
fi=fopen("consecutive.in" ,"r");
fout=fopen("consecutive.out" ,"w");
fscanf(fi,"%d" ,&t);
while(t>0){
t--;
fscanf(fi,"%lld" ,&n);
l=2;
m=0;
while((l*(l+1))<=2*n){
rez=0;
for(pas=1<<30;pas;pas>>=1){
x=rez+pas;
if((x*(x+1))/2-((x-l)*(x-l+1))/2<n)
rez+=pas;
}
rez++;
if((rez*(rez+1))/2-((rez-l)*(rez-l+1))/2==n){
v[0][m]=rez-l+1;
v[1][m]=rez;
m++;
}
l++;
}
fprintf(fout,"%d\n" ,m);
for(i=0;i<m;i++)
fprintf(fout,"%d %d\n" ,v[0][i],v[1][i]);
}
fclose(fi);
fclose(fout);
return 0;
}