借鉴:http://hi.baidu.com/hjayzssczsdtuyr/item/8013571d217997f9dceecad6
#include<stdio.h>
int main()
{
int n, i;
while(scanf("%d", &n)!=EOF)
{
int sum = 0;
for(i = 1; i <= n; i++)
{
sum+=i;
if(sum>n)
break;
}
int m = i-1;
double a;
int b, count = 0;
for(i = 2; i <= m; i++)
{
a = (n-(i*(i-1)/2.0))/(i*1.0);
b = (int)a;//不可以用foor 否则会超时
if(a==b)
count++;
}
printf("%d\n", count);
}
}