CF2020B.Brightness Begins

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

想象你有 nn 个编号为 1,2,…,n1, 2, \ldots, n 的灯泡。最初,所有灯泡都是开着的。翻转一个灯泡的状态意味着如果它原来是开着的,就把它关掉;否则就把它打开。

接下来,您需要执行以下操作:

对于每个 i=1,2,…,ni=1,2,\ldots,n,翻转所有灯泡 jj 的状态,使得 jj 能被 i†i^\dagger 整除。

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

找到最小的合适 nn,使得执行操作后,灯泡的数量恰好为 kk。我们可以证明答案总是存在的。

$ ^\dagger $ 如果存在一个整数 $ z $ 使得 $ x = y\cdot z $ ,那么一个整数 $ x $ 可以被 $ y $ 整除。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt(1≤t≤1041\le t\le 10^4)。测试用例的描述如下。

每个测试用例的唯一一行包含一个整数 kk(1≤k≤10181\le k\le 10^{18})。

输出格式

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

输入输出样例

  • 输入#1

    3
    1
    3
    8

    输出#1

    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 的操作后,数组变成了 [0‾,0‾,0‾,0‾,0‾][\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。

翻译者:jiangyunuo。

输入解题思路,AI测评打分。不知道怎么写?

首页