#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, m, n) for(int i=int(m);i> N; int ans = 0; bool ap = false; if(N == 0){ cout << 0 << endl; } // for(int i = 0; (1 << i) <= N; i++) ans++; // while(N >> ans > 0){ // ans++; // } // ans--; for (int i = 0; ; i++) { int bit = 0; for(int j = 0; (N >> j) > 0; j++){ if(N >> j & 1) bit++; } if(bit == 1) break; ans++; N += N & -N; } // ans--; for(int i = 0; N > 0; i++){ ans++; N >>= 1; } ans--; cout << ans << endl; return 0; }