Cod sursa(job #2054123)

Utilizator Seb16Ungureanu Paul Sebastian Seb16 Data 1 noiembrie 2017 18:44:31
Problema Consecutive Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <math.h>

using namespace std;

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

int n, t;
long long doubleN;
vector <pair <long long, long long> > v;

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