Given an integer n
, return the number of ways you can write n
as the sum of consecutive positive integers.
Input: n = 5 Output: 2 Explanation: 5 = 2 + 3
Input: n = 9 Output: 3 Explanation: 9 = 4 + 5 = 2 + 3 + 4
Input: n = 15 Output: 4 Explanation: 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5
1 <= n <= 109
class Solution:
def consecutiveNumbersSum(self, n: int) -> int:
ret = 0
for x in range(1, int((2 * n) ** .5) + 1):
if (n + (x - 1) * x // 2) % x == 0 and (n + (x - 1) * x // 2) // x > 0:
ret += 1
return ret