CF1110C Meaningless Operations

题目描述

最大公约数和位运算之间会有什么联系吗?现在是解答这个问题的时候了。 给定一个正整数 $a$。你需要从 $1$ 到 $a-1$(包含 $1$ 和 $a-1$)中选择一个整数 $b$,使得整数 $a \oplus b$ 与 $a \& b$ 的最大公约数尽可能大。换句话说,你需要计算如下函数: $$ f(a) = \max_{0 < b < a} \gcd(a \oplus b, a \& b) $$ 其中,$\oplus$ 表示[按位异或运算](https://en.wikipedia.org/wiki/Bitwise_operation#XOR),$\&$ 表示[按位与运算](https://en.wikipedia.org/wiki/Bitwise_operation#AND)。 两个整数 $x$ 和 $y$ 的最大公约数是能够整除 $x$ 和 $y$ 的最大整数 $g$。 现在给定 $q$ 个整数 $a_1, a_2, \ldots, a_q$,对于每个整数,计算在最优选择 $b$ 时,最大公约数的最大可能值。

输入格式

第一行包含一个整数 $q$($1 \leq q \leq 10^3$),表示需要计算答案的整数个数。 接下来有 $q$ 行,每行一个整数,分别为 $a_1, a_2, \ldots, a_q$($2 \leq a_i \leq 2^{25} - 1$),表示需要计算答案的整数。

输出格式

对于每个整数,按照输入顺序输出答案,每行一个。

说明/提示

对于第一个整数,最优选择是 $b = 1$,此时 $a \oplus b = 3$,$a \& b = 0$,$3$ 和 $0$ 的最大公约数是 $3$。 对于第二个整数,一种最优选择是 $b = 2$,此时 $a \oplus b = 1$,$a \& b = 2$,$1$ 和 $2$ 的最大公约数是 $1$。 对于第三个整数,最优选择是 $b = 2$,此时 $a \oplus b = 7$,$a \& b = 0$,$7$ 和 $0$ 的最大公约数是 $7$。 由 ChatGPT 4.1 翻译