Skip to content

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

Solution: Math

  • Time complexity: O(n)
  • Space complexity: O(1)

 

JavaScript

js
/**
 * @param {number} n
 * @return {number}
 */
const consecutiveNumbersSum = function (n) {
  let result = 0;
  let triangleNum = 0; // count * (count - 1) / 2

  for (let count = 1; triangleNum + count <= n; count++) {
    if ((n - triangleNum) % count === 0) {
      result += 1;
    }
    triangleNum += count;
  }
  return result;
};

Released under the MIT license