Pagini recente » Cod sursa (job #2584872) | Cod sursa (job #942134) | Cod sursa (job #1079163) | Cod sursa (job #125050) | Cod sursa (job #2054100)
#include <iostream>
#include <fstream>
#include <vector>
#include <math.h>
using namespace std;
ifstream fin("consecutive.in");
ofstream fout("consecutive.out");
int n, t, doubleN;
vector <pair <int, int> > v;
int main() {
fin >> t;
for (int i = 0; i < t; ++i) {
fin >> n;
doubleN = n * 2;
for (int j = 1; j < (n / 2) + 2; ++j) {
int delta = 1 + 4 * (doubleN + j * j - j);
int sqrtDelta = sqrt(delta);
if (sqrtDelta * sqrtDelta != delta)
continue;
if ((sqrtDelta - 1) % 2 != 0)
continue;
int x2 = (-1 + sqrtDelta) / 2;
v.push_back(make_pair(j, x2));
//sum = (m + n) * (m - n + 1) / 2;
}
}
fout << v.size() << '\n';
for (int i = 0; i < v.size(); ++i) {
fout << v[i].first << ' ' << v[i].second << '\n';
}
return 0;
}