問題
二つの素数を掛け合わしたものをここでは「復素数」と呼ぶことにします。
例えば、$6$ は $2$ と $3$ の積であるため、復素数となります。
しかし、$2$ や $12$ は二つの素数の積ではないため、ここでいう復素数ではありません。
$2$ 以上の整数 $N$ が与えられるので、それが複素数であるか調べてください。
尚、入力の終わりは EOF(ファイルの終端) で表されます。
入力
入力は以下の形式で標準入力から与えられる。
$N_1$ $N_2$ $\vdots$
ファイルの終端まで入力を行う方法
C言語
while(scanf("%d", &n) != EOF){ $\vdots$ }
C++
while(cin >> n){ $\vdots$ }
ファイルの終わりは EOF(End Of File) で表わされます。
Windowsでは [Ctrl] + [Z] で、Linuxでは [Ctrl] + [d] で入力できます。
出力
整数 $N$ が複素数であれば YES
、そうでなければ NO
と出力してください。
出力の最後には、毎回、改行を入れてください。
制約
全ての入出力ケースについて以下を満たす。
- $2 \leq N \leq 10^{1000000}$
- 入力の数は $10^3$ を超えない
入出力例
入力例1
6 9 15 57 33
出力例1
YES YES YES YES YES