牛牛的合数
题号:NC300755
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

        牛牛知道,一个大于 1 的正整数,如果除了 1 和它自身以外不再有其他因数,那么这个数被称作质数。一个大于 1 且不是质数的正整数被称作合数。特殊地,1 既不是质数也不是合数。
\hspace{15pt}现在牛牛给你一个整数 x,牛牛想知道给 x 异或什么数能得到一个合数。严谨地说,求解整数 y \left(1\le y< x\right) 使得 x\oplus y 是一个合数。

输入描述:

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

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行。如果不存在符合题意的 y,则输出 -1;否则,输出一个整数表示 y

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

输入

复制
3
7
13
1145

输出

复制
3
4
1