Pagini recente » Cod sursa (job #2409386) | Cod sursa (job #220093) | Cod sursa (job #2226809) | Cod sursa (job #2438693) | Cod sursa (job #1708955)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
vector<pair<int,int> > v;
int diff;
long long nn = 2LL * n;
long long lim = (int)sqrt(nn) + 1; lim = max(lim, nn);
for(diff = 1; diff <= lim; diff++)
{
int tmp = diff + 1;
if (nn % tmp != 0) continue;
tmp = nn / tmp;
if ((tmp + diff) & 1) continue;
long long b = tmp + diff;
b /= 2;
long long a = tmp - b;
if (a <= 0) continue;
v.push_back(make_pair(a,b));
}
cout << v.size() << '\n';
for(int i = 0; i < v.size(); i++) {
cout << v[i].first << ' ' << v[i].second << '\n';
}
}
return 0;
}