829. Consecutive Numbers Sum

Hard (Khó) Python 🔗 Xem trên LeetCode

📋 Đề Bài

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

💻 Lời Giải

Python 0829-consecutive-numbers-sum.py
class Solution:
    def consecutiveNumbersSum(self, n: int) -> int:
        ans, x = 0, 1
        
        while x * (x + 1) // 2 <= n:
            if (n - x * (x + 1) // 2) % x == 0:
                ans += 1
                print(x)
            x += 1
        
        return ans