Pagini recente » Cod sursa (job #2245995) | Cod sursa (job #3271517) | Cod sursa (job #2383713) | Cod sursa (job #1664798) | Cod sursa (job #2396898)
#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
ifstream in("consecutive.in");
ofstream out("consecutive.out");
int t;
ll n;
vector<pair<ll, ll> > v;
set<pair<ll, ll> > s;
int main() {
in >> t;
while (t--) {
in >> n;
s.clear();
v.clear();
n *= 2LL;
for (ll i = 1; i * i <= n; i++) {
if (n % i)
continue;
s.insert({i, n / i});
s.insert({n / i, i});
}
for (auto it : s) {
ll p = it.se - it.fi + 1;
if (p % 2LL)
continue;
ll x = p / 2LL;
if (x <= 0 || it.fi == 1)
continue;
v.push_back({x, x + it.fi - 1});
}
out << v.size() << '\n';
for (auto it : v)
out << it.fi << ' ' << it.se << '\n';
}
return 0;
}