Pagini recente » Cod sursa (job #2614876) | Cod sursa (job #2806274) | Cod sursa (job #3132224) | Cod sursa (job #2183212) | Cod sursa (job #1709370)
#include <iostream>
#include <cstdio>
#include <cmath>
#define Nmax 300000
#define MOD 19997
using namespace std;
struct interval {
int x;
int 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 m = sqrt(N);
long long N2 = 2 * N;
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;
int p = p2 / 2;
int q = p + k -1;
sol++;
v[sol].x = p;
v[sol].y = q;
}
}
printf("%d\n", sol);
for(int i = 1; i <= sol; ++i) {
printf("%d %d\n", v[i].x, v[i].y);
}
}
return 0;
}