#include using namespace std; typedef long long ll; typedef unsigned long long ull; #define rep(i, a, n) for (int i = (a); i < (n); i++) bitset<1000005> isprime; vector erat_sieve(int lim) { isprime.set(); isprime[0] = isprime[1] = 0; for (int i = 4; i < lim; i +=2) isprime[i] = 0; for (int i = 3; i*i < lim; i += 2) if (isprime[i]) for(int j = i * i; j < lim; j += i * 2) isprime[j] = 0; // unordered_set pr; vector pr; rep(i, 2, lim) if (isprime[i]) pr.push_back(i); return pr; } int main(void) { ios_base::sync_with_stdio(false); auto primes = erat_sieve(1000005); ull test; ull num; cin >> test; for (ull i = 0; i < test; ++i) { cin >> num; bool result = true; ull maxPrime = floor(sqrt(num)); for (ull j = 0; primes[j] < maxPrime ; ++j) { if (num % primes[j] != 0) { result = false; break; } } if ( result == true ) { cout << "Yes" << endl; } else { cout << "No" << endl; } } return 0; }