#CF2020B. 亮度开始

亮度开始

B. 亮度开始

每个测试的时间限制:1 秒
内存限制:256 兆字节


题目描述

假设你有 nn 个灯泡,编号为 1,2,,n1, 2, \dots, n。初始时,所有灯泡都亮着。翻转一个灯泡的状态是指:如果它原来是亮的,就把它关掉;如果它原来是关的,就把它打开。

接下来,你执行以下操作:

对于每个 i=1,2,,ni = 1, 2, \dots, n,翻转所有编号 jj 满足 jj 能被 ii 整除的灯泡的状态。

执行完所有操作后,会有一些灯泡仍然亮着。你的目标是让这个亮着的灯泡数量恰好等于 kk

找出最小的合适的 nn,使得执行完操作后恰好有 kk 个灯泡亮着。可以证明答案总是存在的。


输入格式

每个测试点包含多个测试用例。第一行包含测试用例的数量 tt1t1041 \le t \le 10^4)。接下来是每个测试用例的描述。

每个测试用例只有一行,包含一个整数 kk1k10181 \le k \le 10^{18})。


输出格式

对于每个测试用例,输出 nn —— 所需的最小灯泡数量。


输入样例

3
1
3
8

输出样例

2
5
11

样例解释

第一个测试用例:最小灯泡数量为 22。我们用数组表示所有灯泡的状态,其中 11 表示亮着的灯泡,00 表示关掉的灯泡。

  • 初始状态:[1,1][1, 1]
  • 执行 i=1i = 1 的操作后,数组变为 [0,0][\underline{0}, \underline{0}]
  • 执行 i=2i = 2 的操作后,数组变为 [0,1][0, \underline{1}]

最终有 k=1k = 1 个灯泡亮着。可以证明答案不能小于 22

第二个测试用例:最小灯泡数量为 55

  • 初始状态:[1,1,1,1,1][1, 1, 1, 1, 1]
  • 执行 i=1i = 1 的操作后,数组变为 $[\underline{0}, \underline{0}, \underline{0}, \underline{0}, \underline{0}]$
  • 执行 i=2i = 2 的操作后,数组变为 [0,1,0,1,0][0, \underline{1}, 0, \underline{1}, 0]
  • 执行 i=3i = 3 的操作后,数组变为 [0,1,1,1,0][0, 1, \underline{1}, 1, 0]
  • 执行 i=4i = 4 的操作后,数组变为 [0,1,1,0,0][0, 1, 1, \underline{0}, 0]
  • 执行 i=5i = 5 的操作后,数组变为 [0,1,1,0,1][0, 1, 1, 0, \underline{1}]

最终有 k=3k = 3 个灯泡亮着。可以证明答案不能小于 55