1304 - 掛けても素数!?

時間制限 1 秒 / メモリ制限 256 MB / 得点 3 / Writer ei1903 / x 12 / 統計 /


TLE
1sec
MLE
256MB
得点
3
bool型の配列とvector<bool>とでは、実行時間やメモリの使用量が異なります。
この問題では、vector<bool>を使用してください。
↑bool[]でもACできるときとできないときがあるっぽい?(メモリ制限を変更してもいいかも)

問題

N 個の整数が与えられる。i (1iN) 番目の整数は ai である。
ai について、ai×k が素数となる正整数 k を出力せよ。
ただし、そのような k が複数存在する場合はその中で最も値の小さなものを出力し、そのような k が存在しない場合はNAと出力せよ。

入力

入力は以下の形式で標準入力から与えられる。

N
a1
a2

aN

出力

出力は N 行からなる。
ai に対する答えを改行区切りで出力せよ。

制約

  • 1N106
  • 1ai6×106
  • 入力は全て整数である。

入出力例

入力例1

5
12
7
5
57
2

出力例1

NA
1
1
NA
1

注意

C++において、通常のcin,coutだとTLEする場合があります。

cin.tie(nullptr);
ios_base::sync_with_stdio(false);

で高速化しましょう。