Pagini recente » Cod sursa (job #2514804) | Cod sursa (job #1862610) | Cod sursa (job #2787000) | Cod sursa (job #2751077) | Cod sursa (job #1709167)
#include <stdio.h>
#include <vector>
using namespace std;
int t, n, res;
vector<pair<int, int> > sol;
int main(){
freopen("consecutive.in", "r", stdin);
freopen("consecutive.out", "w", stdout);
scanf("%d", &t);
for(int i = 0; i < t; ++i){
sol.clear();
scanf("%d", &n);
int p, q, a, b;
for(p = 1; p <= n; ++p)
if((2 * n) % p == 0){
q = (2 * n) / p;
a = (p - q + 1) / 2;
b = (p + q - 1) / 2;
if(a >= 1 && b <= (n / 2 + 1) && n == (a + b) * (b - a + 1) / 2)
sol.push_back(make_pair(a, b));
}
printf("%d\n", sol.size());
for(int i = sol.size() - 1; i >= 0; --i)
printf("%d %d\n", sol[i].first, sol[i].second);
}
return 0;
}