Pagini recente » Cod sursa (job #1482028) | Cod sursa (job #2113985) | Cod sursa (job #2638257) | Cod sursa (job #1086684) | Cod sursa (job #1709075)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
bool cmp(pair<int,int> a,pair<int,int> b) {
return a.second-a.first<b.second-b.first;
}
int main() {
//ifstream f("input.txt");
ifstream f("consecutive.in");
ofstream g("consecutive.out");
int t;
for(f>>t;t--;) {
int n;
vector<pair<int,int> > r;
f>>n;
for(int i=1; i*i<=2*n; ++i) if((2*n)%i==0){
int d=i,nd=2*n/i;
if((nd + d) % 2 == 0)
continue;
int m=(nd+d-1)/2; int p=m-d;
if(m > 0 && p >= 0 && m != p+1)
r.push_back(make_pair(p+1,m));
swap(d,nd);
m=(nd+d-1)/2; p=m-d;
if(m > 0 && p >= 0 && m != p+1)
r.push_back(make_pair(p+1,m));
}
sort(r.begin(),r.end(),cmp);
g<<r.size()<<'\n';
for(auto i:r) g<<i.first<<' '<<i.second<<'\n';
}
}