Cod sursa(job #1713923)
Utilizator | Data | 6 iunie 2016 22:13:36 | |
---|---|---|---|
Problema | Consecutive | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva ICPC | Marime | 0.71 kb |
#include <cstdio>
#define MAX 50000
using namespace std;
struct rasp{
long long a1, nr;
}r[MAX+1];
int main()
{
freopen("consecutive.in", "r", stdin);
freopen("consecutive.out", "w", stdout);
long long t, x, n, a, k, lim;
scanf("%lld", &t);
for(int i=1;i<=t;++i)
{
k=0;
scanf("%lld", &x);
lim=(x<<1);
for(int n=2; n*(n-1)<lim; ++n)
{
a=x-n*(n-1)/2;
if(!(a%n))
{
r[++k].a1=a/n;
r[k].nr=n;
}
}
printf("%lld\n", k);
for(int n=1;n<=k;++n)
printf("%lld %lld\n", r[n].a1, r[n].a1+r[n].nr-1);
}
return 0;
}