http://acm.pku.edu.cn/JudgeOnline/problem?id=2140
题意:给出一个数n,求n可以被分解成多少组连续的书相加。
/*
假设a,a+1,a+2...a+k ,为一组符合的答案
有
(k+1)a+0.5*k*(k+1)=n成立
划成
(a + 0.5*k)(k+1)=n
观察等式发现必须满足
1. 0.5*k为整数. 所以k是偶数
2. (k+1) 为n的因数,并且 (k+1) 为奇数
所以综上
n有多少个奇因数,就是本题的答案
*/
#include <stdio.h>
#include <math.h>
int main()
{
int data,i;
int count;
while(scanf("%d",&data) != EOF)
{
count = 1;
if(data%2)
count ++;
for(i = 3;i <= int(ceil(data/2.0));i ++)
{
if(data%i == 0 && i%2 == 1)
count ++;
else
continue;
}
printf("%d/n",count);
}
return 0 ;
}
/*
15
4
*/