Pagini recente » Cod sursa (job #1286962) | Cod sursa (job #2667158) | Profil MihaelaCismaru | Cod sursa (job #589429) | Cod sursa (job #2054144)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("consecutive.in");
ofstream fout("consecutive.out");
long long n, t;
long long doubleN;
int main() {
fin >> t;
for (int i = 0; i < t; ++i) {
vector <pair <long long, long long> > v;
fin >> n;
doubleN = n * 2;
for (long long l = 2; l * (l + 1) <= doubleN; ++l) {
if (doubleN % l != 0)
continue;
long long sum = doubleN / l + 1 - l;
if (sum % 2 != 0)
continue;
long long i = sum / 2;
if (i < 1)
continue;
v.push_back(make_pair(i, i + l - 1));
}
fout << v.size() << '\n';
for (int i = 0; i < v.size(); ++i) {
fout << v[i].first << ' ' << v[i].second << '\n';
}
}
return 0;
}