作者:
卷死你们QAQ
,
2023-03-19 16:01:13
,
所有人可见
,
阅读 3
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cmath>
using namespace std;
typedef long long LL;
const int N = 1000010;
int prime[N];
bool st[N];
int n , cnt;
void init()
{
for(int i = 2; i <= N; i ++)
{
if(!st[i]) prime[++cnt] = i;
for(int j = 1; (LL)1 * prime[j] * i <= N; j ++)
{
st[prime[j] * i] = true;
if(i % prime[j] == 0) break;
}
}
}
int main()
{
cin>>n;
init();
st[1] = true;
while(n --)
{
LL x;
scanf("%lld", &x);
int t = sqrt(x);
if(!st[t] && (LL)1 * t * t == x) puts("YES");
else puts("NO");
}
return 0;
}