Pagini recente » Cod sursa (job #3181010) | Cod sursa (job #2686898) | Cod sursa (job #2700016) | Cod sursa (job #549539) | Cod sursa (job #1774397)
#include <iostream>
#include <cstdio>
#include <cmath>
#define Nmax 1000000
#define MOD 19997
using namespace std;
struct interval {
long long x;
long long y;
} v[Nmax];
int T;
long long N, sol;
int main() {
freopen("consecutive.in", "r", stdin);
freopen("consecutive.out", "w", stdout);
scanf("%d", &T);
while(T--) {
scanf("%lld", &N);
long long N2 = 2 * N;
long long m = sqrt(N2);
sol = 0;
for(int k = 2; k <= m; ++k) {
if(N2 % k == 0) {
long long S = N2 / k;
long long p2 = (S - k + 1);
if(k > S) break;
if(p2 % 2) continue;
long long p = p2 / 2;
long long q = p + k -1;
sol++;
v[sol].x = p;
v[sol].y = q;
}
}
printf("%lld\n", sol);
for(int i = 1; i <= sol; ++i) {
printf("%lld %lld\n", v[i].x, v[i].y);
}
}
return 0;
}