# Hướng dẫn
Phân tích n thành tổng ít nhất 2 số nguyên liên tiếp đồng nghĩa với đếm số cặp **(l, r)** thoả mãn:
**(r - l + 1) * (r + l) = 2 * n.** \
Đặt **a = r - l + 1, b = r + l (a < b)**. \
⇒ **l = (b - a + 1) / 2** \
⇒ **r = (b + a - 1) / 2** \
Nhận thấy a, b là ước số của 2 * n nên ta chỉ cần duyệt qua các ước số của 2 * n và kiểm tra xem có
thoả mãn đồng thời cả 2 điều kiện:
- **(b - a + 1) % 2 == 0**
- **(b + a - 1) % 2 == 0** \
Hay không.
**Code**
```
#include <iostream>
using namespace std;
long long n;
signed main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
cin >> n;
n *= 2;
int res = 0;
for (long long i=2; i*i<=n; ++i)
if (n % i == 0)
{
if (n/i == i) continue;
long long a = i;
long long b = n/i;
res += ((b - a + 1) % 2 == 0 && (b + a - 1) % 2 == 0);
}
return cout << res, 0;
}
```