Pagini recente » Cod sursa (job #1079811) | Cod sursa (job #2473834) | Cod sursa (job #1740675) | Cod sursa (job #1618651) | Cod sursa (job #3217617)
#include <iostream>
#include <vector>
#include <utility>
#include <fstream>
using namespace std;
ifstream fin("consecutive.in");
ofstream fout("consecutive.out");
int main() {
int T, N;
int first_term, terms, sum;
vector<pair<int, int>> sol;
fin >> T;
for (int i = 0; i < T; i++) {
fin >> N;
first_term = 1;
terms = 2;
sol.clear();
do {
sum = N - terms * (terms - 1) / 2;
first_term = sum / terms;
if (sum % terms == 0 && first_term > 0) {
sol.push_back({first_term, first_term + terms - 1});
}
terms++;
} while (first_term > 0);
fout << sol.size() << "\n";
for (auto it : sol) {
fout << it.first << " " << it.second << "\n";
}
}
return 0;
}