Chia 2, trừ 1

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Problem type
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Fed có một số nguyên ~x~. Nếu ~x~ là số chẵn thì Fed sẽ thực hiện phép gán ~x = x / 2~; ngược lại nếu ~x~ là số lẻ thì Fed sẽ thực hiện phép gán ~x = x - 1~. Fed sẽ thực hiện các phép gán này cho đến khi ~x = 1~ thì dừng.

Ví dụ với ~x = 6~:

  • Lần 1: vì ~x~ chẵn nên gán ~x = x / 2~; ~=> x = 3~
  • Lần 2: vì ~x~ lẻ nên gán ~x = x - 1~; ~=> x = 2~
  • Lần 3: vì ~x~ chẵn nên gán ~x = x / 2~; ~=> x = 1~

Như vậy kết quả là sau 3 lần gán thì ~x = 1~.

Yêu cầu

Với số nguyên ~x~ cho trước, hãy cho biết Fed thực hiện bao nhiêu phép gán để đưa ~x~ về 1?

Input

Số nguyên dương ~x~ (~1 \leq x \leq 10^{18}~).

Output

Một số nguyên cho biết kết quả bài toán.

Sample Test

Input
6
Output
3

Bình luận

Please read the guidelines before commenting.


Không có bình luận tại thời điểm này.