梅森数是形如 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 现场赛