Pagini recente » Cod sursa (job #1174182) | Cod sursa (job #2255052) | Cod sursa (job #1316461) | Cod sursa (job #232932) | Cod sursa (job #2054132)
#include <iostream>
#include <fstream>
#include <vector>
#include <math.h>
using namespace std;
ifstream fin("consecutive.in");
ofstream fout("consecutive.out");
int n, t;
long long doubleN;
vector <pair <long long, long long> > v;
int main() {
fin >> t;
for (int i = 0; i < t; ++i) {
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;
}