LeetCode 829. Consecutive Numbers Sum
/*
n=a+(a+1)+...+(a+b-1)
a是首项,b是项数
a=(2n/b-(b-1))/0
1.我们要求所有除法都可以整除
2.a>0
满足上面两个条件的a如果存在,那么就存在这样一个连续序列
细化一下条件,如下:
1.b是2n的约数,2可以被(2n/b-(b-1))整除
2.2n>b(b-1)
*/
class Solution {
public int consecutiveNumbersSum(int N) {
int res=0;
for(int b=1;b*(b-1)<2*N;b++)
if(2*N%b==0 && (2*N/b-(b-1))%2==0)
res++;
return res;
}
}