#include <bits/stdc++.h>
using namespace std;
pair<long long, int> a[100000];
bool ans[100000];
bool isprime(int m) {
  for (int i = 2; i * i <= m; i++)
    if (m % i == 0) return false;
  return true;
}
int main() {
  int n, i, j;
  while (1 == scanf("%d", &n)) {
    for (i = 0; i < n; i++) {
      scanf("%I64d", &a[i].first);
      a[i].second = i;
    }
    sort(a, a + n);
    long long nxt = 2;
    i = 0;
    while (i < n) {
      if (nxt * nxt == a[i].first) {
        ans[a[i].second] = true;
        i++;
      } else {
        if (a[i].first < nxt * nxt) {
          ans[a[i].second] = false;
          i++;
        } else if (a[i].first > nxt * nxt) {
          while (!isprime((int)++nxt))
            ;
        }
      }
    }
    for (i = 0; i < n; i++) puts(ans[i] ? "YES" : "NO");
  }
  return 0;
}
