#include <bits/stdc++.h>
using namespace std;
main (){
long int n,k;
cin >> n;
k = (-1 + sqrt(1 - 4 * 1 * (-n * 2))) / 2;
if (((k + 1)*k)/2 == n){
cout << k;
} else {
cout << "None";
}
}
======================================
Ta có công thức tính tổng các số từ 1 đến k:
N = $\frac{k^{2} + k}{2}$
⇔ $k^{2}$ + k - 2N = 0
⇔k = $\frac{-1 ± \sqrt[]{1^{2}-4.1.(-2N)} }{2.1}$
⇒k = $\frac{-1 + \sqrt[]{1^{2}-4.1.(-2N)} }{2.1}$
Ở đây chỉ lấy số nguyên dương nên ta chỉ lấy dấu +, không lấy dấu -.