수의 삭제
시간 제한1초메모리 제한512 MB
1부터 n까지의 수를 여러 차례 훑으며 매 단계마다 남은 수 중 k번째마다 지울 때, n이 몇 번째 단계에서 지워지는지, 지워지지 않으면 0을 출력한다.
문제
자연수 부터 까지를 일렬로 늘어놓고 자연수 가 주어진다.
이 수열에서 수를 삭제하는 작업을 한 번 이상 수행한다. 각 단계에서는 남아 있는 수를 오름차순으로 훑으면서 번째 수마다 삭제한다. 어떤 단계가 끝난 뒤 남은 수가 개 미만이면 삭제 과정을 끝낸다.
수 이 몇 번째 단계에서 삭제되는지, 또는 과정이 끝날 때까지 삭제되지 않는지를 알아내야 한다.
예를 들어 , 라고 하자.
- 첫 번째 단계에서 가 삭제되고 이 남는다.
- 두 번째 단계에서 이 삭제되고 이 남는다.
- 세 번째 단계에서 이 삭제되고 가 남는다.
- 네 번째 단계에서 가 삭제되고 이 남는다. 수가 하나 남았으므로 과정을 끝낸다.
따라서 은 세 번째 단계에서 삭제된다.
주어진 과 에 대해 이 몇 번째 단계에서 삭제되는지 구하는 프로그램을 작성해야 한다.
입력
첫째 줄에 정수 이 주어진다 ().
둘째 줄에 정수 가 주어진다 (, ).
출력
이 삭제되는 단계의 번호를 나타내는 정수 하나를 출력한다. 이 삭제되지 않으면 을 출력한다.