Pagini recente » Cod sursa (job #3272857) | Cod sursa (job #1595641) | Cod sursa (job #870521) | Cod sursa (job #1886014) | Cod sursa (job #2708738)
#include <fstream>
#include <cmath>
#include <vector>
using namespace std;
vector<long long> out;
ifstream cin("consecutive.in");
ofstream cout("consecutive.out");
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
long long t;
cin>>t;
while(t--){
out.resize(0);
long long n, ml;
cin>>n;
ml = (sqrt((long double)(8*n + 1)))*6 + 165;
for(long long l = 2;l<=ml;l++){
//n = l * (2*s + l - 1) / 2
//s = n/l - l/2 + 1/2
if((n%l == 0) && (l%2 == 1)){
out.push_back(n/l - (l-1)/2);
out.push_back(n/l - (l-1)/2 + l - 1);
}else if(((n%l)*2 == l) && (l%2 == 0)){
out.push_back(n/l + 1 - l/2);
out.push_back(n/l + 1 - l/2 + l - 1);
}
if(out.size()<2)
continue;
if(out[out.size() - 2] <= 0){
out.resize(out.size() - 2);
break;
}
}
cout<<out.size()/2<<'\n';
for(size_t x = 0;x<out.size();x+=2){
cout<<out[x]<<' '<<out[x+1]<<'\n';
}
}
return 0;
}