这道题目水题。。。
等差数列求和。分情况讨论,等差数列的长度为1,2,3,4,。。。直到t
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n;
while(cin >>n)
{
int t=sqrt(2*n*1.0)+1,ans=1,m;
if(n%2==1)
ans++;
if(n%3==0)
ans++;
for(int i=4;i<t;i++)
{
m=i*(i-3)/2%i;
if(n%i==m)
ans++;
}
cout <<ans<<endl;
}
return 0;
}