Cod sursa(job #2054144)

Utilizator Seb16Ungureanu Paul Sebastian Seb16 Data 1 noiembrie 2017 18:57:09
Problema Consecutive Scor 100
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("consecutive.in");
ofstream fout("consecutive.out");

long long n, t;
long long doubleN;

int main() {
	fin >> t;
	for (int i = 0; i < t; ++i) {
		vector <pair <long long, long long> > v;
		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;
			long long i = sum / 2;
			if (i < 1)
				continue;
			v.push_back(make_pair(i, i + l - 1));
		}
		fout << v.size() << '\n';
		for (int i = 0; i < v.size(); ++i) {
			fout << v[i].first << ' ' << v[i].second << '\n';
		}
	}
	return 0;
}