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 <math.h>
#include <string>
using namespace std;

int main() {

	int n, i, p;
	string answer;
	double m;
	cin >> n;
	int x[n];
	for (i = 0; i < n; i++) {
		cin >> x[i];
	}

	for (i = 0; i < n; i++) {
		answer = "YES";
		m = sqrt(x[i]);
		if (x[i] <= 3 or m - int(m) != 0 ) {
			answer = "NO";
		} else {
			for (p = 2; p < m; p++) {
				if (x[i] % p == 0) {
					answer = "NO";
					break;
				}
			}
		}
		cout << answer << endl;
	}
	return 0;
}