Pagini recente » Cod sursa (job #229428) | Cod sursa (job #2906727) | Cod sursa (job #2986) | Cod sursa (job #1265505) | Cod sursa (job #1709774)
#include <fstream>
#include <iostream>
#include <math.h>
#include <vector>
#include <utility>
using namespace std;
int main()
{
int T;
ifstream f("consecutive.in");
ofstream g("consecutive.out");
f >> T;
for(; T > 0; --T) {
long long N, sol_size;
vector<pair<long long, long long> > sol;
f >> N;
if ((N == 1) || (N == 2)) {
g << "0\n";
continue;
}
long long root = sqrt(N * 9 / 4) + 1;
for (long long i = 2; i < root; ++i) {
if ((i & 1) == 0) {
long long mij = i / 2;
if ((N - mij) % i == 0) {
long long a = (N - mij) / i - mij + 1;
sol.push_back(make_pair(a, a + i - 1));
}
} else if (N % i == 0){
long long mij = i / 2;
long long a = N/ i - mij;
sol.push_back(make_pair(a, a + i - 1));
}
}
sol_size = sol.size();
g << sol_size << '\n';
for (long long i = 0; i < sol_size; ++i)
g << sol[i].first << ' ' << sol[i].second << '\n';
}
return 0;
}