简单数学题目,输入n,用sum计数,若存在2个正整数x,y使(x+y)*(y-x+1)=2*n,则sum++;因此我们就把2*n分解成2个数m,n的乘积,若(m+n-1)/2为正整数,则满足题意
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int i,sum=0;
for(i=1;i<=sqrt(2*n);i++)
{
if(i*(2*n/i)==2*n)
{
if((i+2*n/i-1)%2==0)
{
sum++;
}
}
}
cout<<sum<<endl;
}
return 0;
}