Pagini recente » Cod sursa (job #925808) | Cod sursa (job #1899837) | Cod sursa (job #2606350) | Cod sursa (job #966558) | Cod sursa (job #2054123)
#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;
v.push_back(make_pair(sum / 2, sum / 2 + l - 1));
}
}
fout << v.size() << '\n';
for (int i = 0; i < v.size(); ++i) {
fout << v[i].first << ' ' << v[i].second << '\n';
}
return 0;
}