#include <fstream>
#include <vector>
#include <cmath>
using namespace std;
ifstream cin("consecutive.in");
ofstream cout("consecutive.out");
struct ans{
int st,dr;
};
int main()
{
int T;
cin >> T;
while(T--){
long long nr;
cin >> nr;
vector<ans> v;
for(long long i=2; i*i<2*nr; i++){
if(2*nr%i==0){
if(((2*nr/i)-i+1)%2==0 && (2*nr/i)-i+1>0){
long long a=((2*nr/i)-i+1)/2;
long long b=a+i-1;
v.push_back({a,b});
}
}
}
cout << v.size() << '\n';
for(long long i=0; i<v.size(); i++){
cout << v[i].st << " " << v[i].dr << '\n';
}
}
}