Pagini recente » Cod sursa (job #4514) | Cod sursa (job #2239834) | Cod sursa (job #2455449) | Cod sursa (job #87310) | Cod sursa (job #1787708)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("consecutive.in");
ofstream g("consecutive.out");
int t;
long long n;
vector< pair<int, int> > all;
bool cmp(const pair<int, int> p1, const pair<int, int> p2)
{
return p1.second - p1.first < p2.second - p2.first;
}
int main()
{
f >> t;
for (; t--; ) {
f >> n;
all.clear();
long long tmp = 2 * n;
for (int i = 2; 1LL * i*i <= tmp; i++) {
if (tmp%i == 0) {
int first = tmp / i - (i - 1);
if (first > 0 && first % 2 == 0)
all.push_back(make_pair(first / 2, first / 2 + i - 1));
}
}
sort(all.begin(), all.end(), cmp);
g << all.size() << "\n";
for (auto it = all.begin(); it != all.end(); it++)
g << it->first << " " << it->second << "\n";
}
}