Primality Test

TimeLimit:5000MS  MemoryLimit:262144KB
64-bit integer IO format:%I64d
未提交 | 登录后收藏
Problem Description
A positive integer is called a $\textit{prime}$ if it is greater than $1$ and cannot be written as the product of two smaller positive integers. A $\textit{primality test}$ is an algorithm for determining whether an input number is a prime. For example, the Miller-Rabin primality test is a probabilistic primality test. This problem is precisely the one about the primality test.

Let's define the function $f(x)$ as the smallest prime which is strictly larger than $x$. For example, $f(1)=2$, $f(2)=3$, and $f(3)=f(4)=5$. And we use $\lfloor x \rfloor$ to indicate the largest integer that does not exceed $x$.

Now given $x$, please determine whether $g(x)$ is a prime.

$$g(x)=\left\lfloor\dfrac{f(x)+f(f(x))}{2}\right\rfloor$$
Input
The first line of the input contains an integer $T$ ($1 \le T \le 10^5$), indicating the number of test cases.

Each test case contains an integer $x$ ($1 \le x \le 10^{18}$) in a single line.
Output
For each test case, if $g(x)$ is a prime, output $\texttt{YES}$ in a single line. Otherwise, output $\texttt{NO}$ in a single line.
SampleInput
2
1
2
SampleOutput
YES
NO

 Hint When $x=1$, $f(x)=2$, $f(f(x))=f(2)=3$, then $g(x)=\left\lfloor\dfrac{2+3}{2}\right\rfloor=2$, which is a prime. So the output is $\texttt{YES}$. When $x=2$, $f(x)=3$, $f(f(x))=f(3)=5$, then $g(x)=\left\lfloor\dfrac{3+5}{2}\right\rfloor=4$, which is not a prime. So the output is $\texttt{NO}$.
Submit
题目统计信息详细
总AC数4
通过人数4
尝试人数5
总提交量18
AC率22.22%
AC该题后可以添加标签
贴完标签可以获得20ACB。
并且可以获得本题所有提交代码查看权限。
点击标题可以显示标签。
如果你还没认真思考过这题,请不要查看标签
如果您已经通过了该题,请务为该题贴上标签

T^T Online Judge

[BUG反馈] [FAQ] [闽ICP备17026590号-1]
当前版本:3.24 系统时间: