외계인 발전기
시간 제한30초메모리 제한1024 MB
K부터 시작해 하루마다 1씩 늘어나는 생산량의 누적 합이 G를 넘지 않으면서 정확히 G가 되는 시작값 K의 개수를 구한다.
문제
우주비행사들이 새로운 행성 Kickstartos에 착륙했다. 그들은 행성에서 금괴를 만들어 내는 기계를 발견했다. 발전기는 다음과 같이 작동한다. 첫날 우주비행사가 발전기에 양의 정수 K를 입력한다. 그러면 발전기는 그날 K개의 금괴를 생산한다. 다음 날에는 K+1개, 그다음 날에는 K+2개를 생산하는 식이다. 정확히 말해, i일째에 발전기는 K+i−1개의 금괴를 생산한다.
그러나 우주비행사들은 발전기에 한 가지 제약이 있다는 것도 알고 있다.
어떤 날에 발전기가 모든 날을 통틀어 총 G개를 초과하는 금괴를 생산하게 되면, 그날 발전기는 고장 나서 그날과 그 이후에는 금괴를 0개 생산한다. 우주비행사들은 이를 피하고 싶어 하므로, 정확히 G개의 금괴를 생산하려고 한다.
K=2, G=8인 경우를 보자. 1일째에 발전기는 금괴 2개를 생산한다. 2일째에 발전기는 금괴 3개를 더 생산해 총 금괴 수는 5가 된다. 3일째에 발전기는 금괴 4개를 더 생산하려 하므로 총 9개가 된다. 따라서 발전기는 3일째에 금괴 4개를 생산하기 전에 고장 난다. 결국 이 경우 생산되는 금괴의 총수는 5이다.
정확히 말해, 주어진 G에 대해 우주비행사들은 첫날 K의 값 중 어떤 값들이 결국 정확히 G개의 금괴를 생산하는지 알고 싶어 한다.
입력
입력의 첫 줄에는 테스트 케이스의 수 T가 주어진다. 그다음 T개의 줄이 이어진다.
각 줄에는 발전기가 생산할 수 있는 금괴의 최대 개수를 나타내는 정수 G가 하나씩 주어진다.
출력
각 테스트 케이스마다 Case #x: y 형식의 한 줄을 출력한다. 여기서 x는 테스트 케이스 번호(1부터 시작)이고, y는 첫날 K의 값 중 결국 정확히 G개의 금괴를 생산하는 값의 개수이다.
제한
- 1 ≤ T ≤ 100
힌트
예제 케이스 #1에서는 정확히 10개의 금괴를 생산하는 K의 값이 2개(1, 10) 있다. K=1이면 4일 후에 1+2+3+4=10개의 금괴를 얻고, K=10이면 하루 만에 10개의 금괴를 얻는다.
예제 케이스 #2에서는 정확히 125개의 금괴를 생산하는 K의 값이 4개(8, 23, 62, 125) 있다.