서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
첫째 줄에 자연수 N의 최댓값을 출력한다.
s = int(input())
n = 1
while n*(n+1)/2 <= s:
n += 1
print(n-1)
서로다른 n개의 자연수의 합이 s일때 n의 최댓값을 구하는 알고리즘이다.
최댓값을 구하는 문제이므로 1부터 차례대로 더해 s보다 커지게 되면 그 개수에서 1을 빼면 된다.
n * (n + 1) / 2는 1부터 n까지의 합의 공식이다.