#include <fstream>
#include <cmath>
using namespace std;
ifstream in("consecutive.in");
ofstream out("consecutive.out");
int v[65357],cat[65537];
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,a;
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)>=1)
{
cnt++;
v[cnt]=sumak(n,cate);
cat[cnt]=cate;
}
cate++;
}
out<<cnt<<'\n';
cate=2;
cnt=0;
s=sqrt(4*n);
while(cate<=s)
{
if(sumak(n,cate)>=1)
{
a=sumak(n,cate);
out<<a<<" "<<a+cate-1<<'\n';
}
cate++;
}
}
return 0;
}