编程题
### 问题描述 新一是一个著名的侦探,一直以来,他都在和一位神秘的罪犯基德斗智斗勇。基德有一种特殊的爱好,就是喜欢在犯罪现场留下一些谜团,而新一每次都能破解这些谜团,找到基德。 这一次,基德留下了一个神秘的密码,新一发现这个密码是由两个正整数 $a$ 和 $b$ 构成的,而且他们的和等于 $N$。基德留下的提示是:计算 $f(a, b) = \text{lcm}(a, b) - \text{gcd}(a, b)$,其中 $\text{lcm}(a, b)$ 表示 $a$ 和 $b$ 的最小公倍数,$\text{gcd}(a, b)$ 表示 $a$ 和 $b$ 的最大公约数。 新一想知道,对于所有满足条件的 $a$ 和 $b$,$f(a, b)$ 的最大值是多少? ### 输入格式 首先,你会读到一个数字 $T$,表示有 $T$ 组测试数据。 对于每组数据,你会读到一个整数 $N$。 数据范围保证:$1 \leq T \leq 10^5$,$3 \leq N \leq 10^9$。 ### 输出格式 对于每组测试数据,你需要输出一个整数,表示 $f(a, b)$ 的最大值。 ### 样例输入 ``` 3 3 4 6 ``` ### 样例输出 ``` 1 2 4 ``` ### 样例解释 在第一个测试数据中,我们有两个可能的 $(a, b)$ 对:$(1, 2)$ 和 $(2, 1)$。对于这两对,我们有 $\text{lcm}(a, b) = 2$ 和 $\text{gcd}(a, b) = 1$,所以 $f(a, b) = 1$。 在第二个测试数据中,对于 $(1, 3)$,我们有 $\text{lcm}(1, 3) = 3$ 和 $\text{gcd}(1, 3) = 1$,所以 $f(1, 3) = 3 - 1 = 2$。可以证明这是满足条件的 $f(a, b)$ 的最大值。 在第三个测试数据中,对于 $(1, 5)$,我们有 $\text{lcm}(1, 5) = 5$ 和 $\text{gcd}(1, 5) = 1$,所以 $f(1, 5) = 5 - 1 = 4$。可以证明这是满足条件的 $f(a, b)$ 的最大值。
查看答案
赣ICP备20007335号-2