서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까?
첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다.
첫째 줄에 자연수 N의 최댓값을 출력한다.
200
19
최댓값을 구하는 문제이므로 1부터 차례대로 더해 s보다 커지게 되면 그 개수에서 1을 빼면 된다.
n * (n + 1) / 2는 1부터 n까지의 합의 공식이다.
s = int(input())
n = 1
while n * (n + 1) / 2 <= s:
n += 1
print(n - 1)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
long num = scan.nextLong();
long sum = 0;
int count = 0;
for(int i=1; ; i++) {
if(sum > num) break;
sum += i;
count ++;
}
System.out.println(count-1);
scan.close();
}
}