Pagini recente » Diferente pentru problema/senat intre reviziile 3 si 2 | Cod sursa (job #3360847) | Cod sursa (job #3360846) | Cod sursa (job #3360845) | Cod sursa (job #3359920)
#include <fstream>
#include <vector>
#include <cstdint>
#define int unsigned long long
using namespace std;
ifstream cin("consecutive.in");
ofstream cout("consecutive.out");
int32_t main()
{
int t;
cin>>t;
while(t--){
vector<pair<int,int>>ans;
int n;
cin>>n;
n*=2;
for(int d=2;d*d<=n;d++){
if(n%d) continue;
int x=d,y=n/d;
int p,u;
if((y-x+1)%2) continue;
p=(y-x+1)/2;
u=y-p;
ans.push_back({p,u});
}
cout<<ans.size()<<'\n';
for(auto e:ans){
cout<<e.first<<" "<<e.second<<'\n';
}
}
return 0;
}
/// x*a+1+2+3+...+x=x*a+x*(x+1)/2=x*(a+(x+1)/2)=n