만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

2의 제곱수 계산하기

면접 대비

시간 제한1초메모리 제한512 MB

요약
2의 거듭제곱을 계산하다 한 번 1을 빼는 실수를 한 결과값이 주어질 때, 그 실수가 일어난 단계 K를 찾는다.
난이도

쉬움10점 중 3점

유형
수학, 이분 탐색, 구현, 비트 연산
정답자
아직 제출이 없습니다

문제

태영이의 취미는 2의 제곱수를 계산하는 것이다.

태영이는 264=18 446 744 073 709 551 6162^{64} = 18\,446\,744\,073\,709\,551\,616 이라는 것을 알고 있고 직접 202^0부터 2씩 곱해서 2642^{64}을 구할 것이다.

하지만 태영이는 2씩 곱하는 와중에 1을 빼버리는 실수를 딱 한 번 해버리고 말았다. (실수는 단 한 번만 하며, 그 후에는 2로 곱하는 계산을 정확하게 수행한다.)

예를 들어, 21=22^1 = 2로 계산을 잘 하다가 22=32^2 = 3으로 계산해버리는 어이없는 실수를 해버리는 것이다.

그렇게 된다면 23=62^3 = 6, 24=122^4 = 12 ... 로 계산하여 점점 오차가 커진다.

태영이가 구한 2642^{64}인 NN이 주어졌을 때, 태영이가 처음으로 실수한 구간을 찾아주자.

입력

양의 정수 NN이 주어진다.

NN은 태영이가 2642^{64}를 계산했을 때 나올 수 있는 수이다.

출력

태영이가 처음으로 실수한 구간을 찾아주자.

2K=2K−12^K = 2^{K-1}로 계산해버렸을 때의 KK를 출력하면 된다.

제한

  • 2≤N≤18 446 744 073 709 551 615=264−12 \le N \le 18\,446\,744\,073\,709\,551\,615 = 2^{64} - 1

예제1

  1. 예제 1

    입력
    18446744073709551615
    
    예상 출력
    64