1242. 梅森素数问题

梅森数是形如 2^p − 1 的一类数,其中指数 p 是素数。如果梅森数是素数,就称为梅森素数。

能用 c++ int 类型表示的梅森素数一共有如下 7 个: 3, 7, 127, 8191, 131071, 524287, 2147483647。给你一个整数 x,你需要找到最小的,且大于或等于 x 的梅森素数。

输入

第一行一个数 T ,表示测试的组数。(1 ≤ T ≤ 2000)

每组一个整数 x(0 ≤ x ≤ 1000000000),含义如题意所示。

输出

对于每组测试,输出一行,表示大于或等于 x 的最小的梅森素数。

样例

标准输入 复制文本
10
1
2
3
4
5
6
7
8
9
10
标准输出 复制文本
3
3
3
7
7
7
7
127
127
127

来源

2019 SCNUCS-N 现场赛

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 46
通过 27