서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
첫째 줄에 자연수 N의 최댓값을 출력한다.
input1 = int(input())
intsum = 0
i = 0
while True:
i += 1
intsum += i
if intsum > input1:
break
print(i-1)
서로 다른 자연수가 최대한 많이 더해져서 어떤 수가 되려면 당연히 1부터 계속 더해나가야 할 것이다.
예시의 200을 보면 1 + 2 + ... + 19 + 20 = 210 이 되는데, 이는 즉 1부터 오름차순으로 20개의 숫자를 더하면 210이 되니까 여기서 자연수 하나 (10) 만 빼면 200 이 됨을 알 수 있다. 즉, 20 - 1 = 19개의 서로 다른 자연수가 더해지는 경우가 최대의 N 값을 내면서 200이 되는 것이다.