Algorithms and Data Structures

  • Profound Academy

    • Status
      • 1
        Implementation
      • 2
        Bitwise operations
      • 3
        Prefix Sums
      • 4
        Sliding window / Two pointers
      • 5
        Modular Arithmetic
      • 6
        Number Theory
      • 7
        Binary Search
      • 8
        Basic Sorting
      • 9
        Greedy Algorithms
      • 10
        Basic Dynamic Programming
      • 11
        Recursion
      • 12
        Linked LIst
      • 13
        Queue & Stack
      • 14
        Binary tree + BST
      • 15
        Divide & Conquer + Advanced Sorting
      • 16
        Heap
      • 17
        Hashing
      • 18
        Graph Representation

  • Complement to 0

    If we take a number like 5 and represent it as a binary number, we’ll get 101. We can complement it and get 10 (discard the initial 0) which corresponds to 2. Complementing it again will result in 1 (discard the initial 0) which corresponds to 1. And complementing 1 will give us 0.
    101 → 10 → 1 → 0.
    So, to get from 5 to 0 we had to perform 3 complement operations. It’s pretty tedious to do this by hand, so the company asks you to write a program that would compute the number of complement operations that would turn the initial number n to 0.

    Input

    The input contains a single integer n (1 ≤ n ≤ ).

    Output

    The output should contain a single integer - the number of complement operations we need to perform to turn n into 0.

    Examples

    Input
    Output
    5
    3
     

    Constraints

    Time limit: 1 seconds

    Memory limit: 512 MB

    Output limit: 1 MB

    To check your solution you need to sign in
    Sign in to continue