MuQ 的签到题
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}MuQ 有 n 张符卡,第 i 张符卡的权值为 a_i = i
\hspace{15pt}MuQ 需要从中选取 m\left(1 \le m \le n\right) 张符卡组成一个 stage。记选取的符卡权值分别为 b_1,b_2,\dots,b_m,其难度定义为 m \oplus \gcd(b_1,b_2,\dots,b_m)
\hspace{15pt}MuQ 想知道,她能组出的难度最大的 stage 的难度值为多少。

【名词解释】
\hspace{15pt}\oplus:指位运算中的按位异或(Bitwise XOR),对两个整数的二进制表示按位进行异或运算。
\hspace{15pt}\gcd:最大公约数,指两个或多个整数共有约数中最大的一个。例如,1230 的公约数有 1,2,3,6,其中最大的约数是 6,因此记作 \gcd(12,30)=6。特别地,单个整数的 \gcd 定义为其自身。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 10^4\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入包含一个整数 n\left(1 \le n \le 10^{9}\right),表示符卡的数量。

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行输出一个整数表示能得到的最大难度。
示例1

输入

复制
2
2
3

输出

复制
3
3

说明

\hspace{15pt}对于第一组测试数据,其中一种最优方案是选取权值为 12 的两张符卡,难度为 2 \oplus \gcd(1,2) = 3

\hspace{15pt}对于第二组测试数据,其中一种最优方案是选取权值为 23 的两张符卡,难度为 2 \oplus \gcd(2,3) = 3