func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long MAX = 1000001;   vector<bool> prime(MAX, true);   void sieve(vector<bool> &prime) {     prime[0] = prime[1] = false;     for (int i = 2; i * i < MAX; i++) {       if (prime[i]) {         for (int j = i * i; j < MAX; j += i) prime[j] = false;       }     }   }   long long fast_pow(long long a, long long p) {     long long res = 1;     while (p) {       if (p % 2 == 0) {         a = (a * a) % 1000000007;         p /= 2;       } else {         res = (res * a) % 1000000007;         p--;       }     }     return res;   }   int expFactor(int n, int p) {     int x = p;     int exponent = 0;     while ((n / x) > 0) {       exponent += n / x;       x *= p;     }     return exponent;   }   long long Sqrt(long long x) {     if (x == 0 || x == 1) return x;     long long i = 1, result = 1;     while (result <= x) {       i++;       result = i * i;     }     return i - 1;   }   void c_p() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);   }   int check_perfect_square(long long n) {     double sqrt_n = sqrt(n);     if (sqrt_n == int(sqrt_n))       return (int)(sqrt_n);     else       return -1;   }   int main() {     c_p();     sieve(prime);     long long n, a;     cin >> n;     for (int i = 0; i < n; i++) {       cin >> a;       int t = check_perfect_square(a);       if (t != -1 && prime[t])         cout <<  YES n ;       else         cout <<  NO n ;     }   }   