小红的gcd位运算构造
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}给定一个正整数 x\left(1 \leqq x \leqq 10^9 \right),请你找到一个正整数 y\left(1 \leqq y \leqq 10^9 \right),使得同时满足以下两个条件:
\hspace{23pt}\bulletx\ and\ y = 0按位与结果为 0);
\hspace{23pt}\bullet\gcd(x, y) = 1最大公约数为 1)。
\hspace{15pt}请你找到一个符合条件的 y。可以证明对于给定范围内的所有 x,至少存在一个满足条件的 y

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

输入描述:

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

\hspace{15pt}第一行输入一个整数 x\left(1 \leqq x \leqq 10^9 \right)

输出描述:

\hspace{15pt}对于每组测试数据,新起一行。

\hspace{15pt}输出一个整数 y\left(1 \leqq y \leqq 10^9 \right)

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
2
3
114514

输出

复制
4
147629