题目 20392

数字过程

查看题解 ↗GitHub ↗如何评测
题号
20392
时间限制
30000 ms
内存限制
64 MB
标签
比赛CSP-S
来源
CSP-S 国外模拟赛 28 - T2

第 2 题 数字过程 (numberprocess)

时间限制 30 s · 空间限制 64 MB · 24 个测试点 · 全文比较(过滤行末空格及文末回车)

本题使用文件输入输出:输入文件 numberprocess.in,输出文件 numberprocess.out。

  • 题目代号:1ic
  • 时间限制:30 s,内存限制:64 MB

题目描述

考虑函数 f(n)f(n),它返回 nn 的各位数字之和。例如:f(2019)=2+0+1+9=12f(2019) = 2 + 0 + 1 + 9 = 12。再考虑函数

g(n)=n+f(n)2.g(n) = n + f(n)^2.

例如:g(2019)=2019+f(2019)2=2019+122=2019+144=2163g(2019) = 2019 + f(2019)^2 = 2019 + 12^2 = 2019 + 144 = 2163。

Bajtazar 非常喜欢函数 gg。他开始进行如下过程:从 n=1n = 1 开始,计算 g(n)g(n) 并把结果作为新的 nn;然后再计算 g(n)g(n) 并再次更新 nn,如此反复。这个过程得到的前四个数是 1,2,6,421, 2, 6, 42。

Bajtazar 有许多喜欢的数,对每一个他都想知道:这个数是否可能由他的过程得到?请你帮帮他!

对每个给出的数,判断它是否能由该过程得到并输出结果。

输入格式

第一行一个自然数 QQ(1≤Q≤100 0001 \le Q \le 100\,000),表示询问数量。

接下来 QQ 行,每行一个自然数 MiM_i(1≤Mi≤5⋅1091 \le M_i \le 5 \cdot 10^9),表示一个询问。

输出格式

输出恰好 QQ 行。第 ii 行对应第 ii 个询问的答案:若 MiM_i 能由 Bajtazar 的过程得到,输出 TAK,否则输出 NIE。

样例

样例 1

输入:

文本
6
2
1
30
42
2
731

输出:

文本
TAK
TAK
NIE
TAK
TAK
NIE

样例 2

输入:

文本
3
78
1806
4997888322

输出:

文本
TAK
NIE
TAK

数据范围与子任务

额外限制 分值
Q≤1Q \le 1 10
Mi≤1 000 000M_i \le 1\,000\,000 且 Q≤10Q \le 10 20
Mi≤107M_i \le 10^7 60

完整数据满足 1≤Q≤100 0001 \le Q \le 100\,000,1≤Mi≤5⋅1091 \le M_i \le 5 \cdot 10^9。

说明

过程产生的数称为「特殊数」。由于 g(n)>ng(n) > n,该序列严格递增。可以证明,不超过 5⋅1095 \cdot 10^9 的特殊数只有约 2 962 7172\,962\,717 个,数量足够少,使得预生成与排序后双指针问答查询成为可能。

数据下载

题目 20392 的公开数据

正在读取文件列表…

常用命令

题目 20392 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。