We know that prime numbers are positive integers that have exactly two distinct positive divisors. Similarly, we'll call a positive integer *t* Т-prime, if *t* has exactly three distinct positive divisors.

You are given an array of *n* positive integers. For each of them determine whether it is Т-prime or not.
The first line contains a single positive integer, *n* (1 ≤ *n* ≤ 10<sup class="upper-index">5</sup>), showing how many numbers are in the array. The next line contains *n* space-separated integers *x*<sub class="lower-index">*i*</sub> (1 ≤ *x*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">12</sup>).

Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is advised to use the cin, cout streams or the %I64d specifier.
#include<iostream>
#include<cmath>
using namespace std;
bool ispr(int n)
{
    int s=floor(sqrt(n));
    int flag=1;
    for(int i=2;i<=s+1;i++)
    {
        if(n%i==0)
        {
            flag=0;
        }
    }
    if(n==2)
    {
        flag=1;
    }
    return flag;
}
int main()
{
    int n,m;
    cin>>n;
    int i,j;
    for(i=0;i<n;i++)
    {
        cin>>m;
        bool flag=false;
        for(j=1;j<m;j++)
        {
            if(j*j==m && ispr(j))
            {
                flag=true;
                break;
            }
        }
        if(flag==true)
        {
            cout<<"YES";
        }
        else
        {
            cout<<"NO";
        }
    }
    return 0;
}