Welcome to Subscribe On Youtube
829. Consecutive Numbers Sum
Description
Given an integer n
, return the number of ways you can write n
as the sum of consecutive positive integers.
Example 1:
Input: n = 5 Output: 2 Explanation: 5 = 2 + 3
Example 2:
Input: n = 9 Output: 3 Explanation: 9 = 4 + 5 = 2 + 3 + 4
Example 3:
Input: n = 15 Output: 4 Explanation: 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5
Constraints:
1 <= n <= 109
Solutions
-
class Solution { public int consecutiveNumbersSum(int n) { n <<= 1; int ans = 0; for (int k = 1; k * (k + 1) <= n; ++k) { if (n % k == 0 && (n / k + 1 - k) % 2 == 0) { ++ans; } } return ans; } }
-
class Solution { public: int consecutiveNumbersSum(int n) { n <<= 1; int ans = 0; for (int k = 1; k * (k + 1) <= n; ++k) { if (n % k == 0 && (n / k + 1 - k) % 2 == 0) { ++ans; } } return ans; } };
-
class Solution: def consecutiveNumbersSum(self, n: int) -> int: n <<= 1 ans, k = 0, 1 while k * (k + 1) <= n: if n % k == 0 and (n // k + 1 - k) % 2 == 0: ans += 1 k += 1 return ans
-
func consecutiveNumbersSum(n int) int { n <<= 1 ans := 0 for k := 1; k*(k+1) <= n; k++ { if n%k == 0 && (n/k+1-k)%2 == 0 { ans++ } } return ans }
-
function consecutiveNumbersSum(n: number): number { let ans = 0; n <<= 1; for (let k = 1; k * (k + 1) <= n; ++k) { if (n % k === 0 && (Math.floor(n / k) + 1 - k) % 2 === 0) { ++ans; } } return ans; }