CF1846E2 Rudolf and Snowflakes (hard version)

题目描述

这是该问题的困难版本。唯一的区别在于本版本中 $n \le 10^{18}$。 一个冬日清晨,Rudolf 若有所思地望着窗外,观察着飘落的雪花。他很快注意到雪花的结构中存在某种对称性。作为一名真正的数学家,Rudolf 想出了一个雪花的数学模型。 他将雪花定义为按照以下规则构造的无向图: - 最初,图中只有一个顶点。 - 然后,向图中添加更多顶点。初始顶点通过边与 $k$ 个新顶点相连($k > 1$)。 - 每个只与一个其他顶点相连的顶点,再通过边与 $k$ 个新顶点相连。此步骤至少要执行一次。 对于 $k=4$ 的最小雪花如下图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1846E2/2fc3f5caf761ddee75c017a3deae10ee696f63d1.png) 经过一番数学研究,Rudolf 意识到,这样的雪花并不一定能拥有任意数量的顶点。请帮助 Rudolf 判断,是否存在一个雪花,其顶点数为 $n$。

输入格式

输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^{18}$),表示需要判断是否存在顶点数为 $n$ 的雪花。

输出格式

输出 $t$ 行,每行对应一个测试用例的答案——如果存在某个 $k > 1$,使得可以构造出顶点数为 $n$ 的雪花,则输出 "YES";否则输出 "NO"。

说明/提示

由 ChatGPT 4.1 翻译