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