Pagini recente » Cod sursa (job #1767761) | Cod sursa (job #169367) | Cod sursa (job #1803363) | Cod sursa (job #2136949) | Cod sursa (job #1709409)
#include <bits/stdc++.h>
#include <algorithm>
#define pb push_back
#define mp make_pair
#define mt make_tuple
#define ll long long
#define pii pair<int,int>
#define tii tuple <int,int,int>
#define N 1000005
#define mod 2000003
#define X first
#define Y second
#define eps 0.0000000001
#define all(x) x.begin(),x.end()
#define tot(x) x+1,x+n+1
using namespace std;
ll n,i,x,t,sol,y,xx;
int main()
{
freopen("consecutive.in","r",stdin);
freopen("consecutive.out","w",stdout);
scanf("%lld",&t);
for(; t; t--)
{
scanf("%lld",&n);
if(n==1)
{
cout<<0<<'\n';
continue;
}
sol=0;
for(i=2, x=0; x<=n; i++,x+=i)
{
if(n%i==0 && i%2==1)
{
xx=n/i;
y=n/xx;
if((n/i)-(y/2)>0)sol++;
}
else if(n%(i/2)==0 && i%2==0&&(n/(i/2))%2&&(n/i-(i/2-1))>0)sol++;
}
cout<<sol<<'\n';
x=0;
for(i=2; x<=n; i++,x+=i)
{
if(n%i==0 && i%2==1)
{
xx=n/i;
y=n/xx;
if(xx-(y/2)>0)
cout<<xx-(y/2)<<' '<<xx+(y/2)<<'\n';
}
else if(n%(i/2)==0 && i%2==0&&(n/(i/2))%2&&(n/i-(i/2-1))>0)cout<<n/i-(i/2-1)<<' '<<n/i+(i/2)<<'\n';
}
}
return 0;
}