#A1417. 最大的K

最大的K

题目描述

给定一个正整数nn,找到满足以下条件的最大整数kk的值:

n&(n1)&(n2)&(n3)&...(k)=0 n \& (n−1) \& (n−2) \& (n−3) \& ... (k) = 0

其中&\&表示按位与ANDAND操作。其功能是参与运算的两数各对应的二进制相与。只有对应的两个二进制都为1时,结果位才为1。

规则:

1&1=11\&1=1

1&0=01\&0=0

0&1=00\&1=0

0&0=00\&0=0

输入格式

第一行包含一个正整数tt。表示接下来有tt个测试用例。

每个测试用例的第一行包含一个正整数nn

输出格式

对于每个测试用例,输出一个整数,即所求的整数kk

3
2
5
17
1
3
15

提示

【样例解释】

在第一个测试用例中,连续进行按位与操作得到0值的最大值是1。

在第二个测试用例中,连续进行位与操作得到0值的最大值是3。没有比3更大的值。

  • 5&405 \& 4\neq 0
  • 5&4&3=05\&4\&3 = 0

因此,答案是3。

【数据范围】

对于20%20\%的数据,保证t=10,n103t=10,n\leq 10^3

对于40%40\%的数据,保证t102,n105t\leq10^2,n\leq 10^5

对于60%60\%的数据,保证t104,n107t\leq10^4,n\leq 10^7

对于100%100\%的数据,保证t3104,n109t\leq3\cdot10^4,n\leq 10^9