Pagini recente » Cod sursa (job #2557807) | Cod sursa (job #3294761) | Cod sursa (job #1325202) | Cod sursa (job #3187469) | Cod sursa (job #1709368)
#include <iostream>
#include <stdio.h>
#include <cmath>
#define NMAX 350000
using namespace std;
long long N, k, sn, m, L, i, j, numar, T, x;
long long lungime[NMAX], stanga[NMAX];
long long n;
int main() {
freopen("consecutive.in", "r", stdin);
freopen("consecutive.out", "w", stdout);
scanf("%lld", &T);
while(T--) {
k = 0; numar = 0;
scanf("%lld", &N);
sn = 2 * sqrt(N);
for(L = 2; L <= sn; ++ L) {
n = 2 * N + L * L + L;
if(n % (2*L) == 0) {
x = (2*N - (L*L - L)) / (2 * L);
if(x > 0) {
stanga[k++] = x;
lungime[k - 1] = L;
numar ++;
}
}
}
printf("%lld\n", 1LL * numar);
for(i = 0; i < k; ++i) {
printf("%lld %lld\n", 1LL * stanga[i], 1LL * (stanga[i] + lungime[i] - 1));
}
}
return 0;
}