-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCodeforces_Tprimes.cpp
More file actions
55 lines (42 loc) · 817 Bytes
/
Codeforces_Tprimes.cpp
File metadata and controls
55 lines (42 loc) · 817 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long int ulli;
static const unsigned long long SIZE = 10000001;
vector<bool> getPrimeArray()
{
vector<bool> primeSet(SIZE, true);
primeSet[0] = false;
primeSet[1] = false;
for (ulli i = 2; i <= sqrt(SIZE); i++)
{
if (primeSet[i])
{
for (ulli j = i * 2; j <= SIZE; j += i)
{
primeSet[j] = false;
}
}
}
return primeSet;
}
int main()
{
vector<bool> primeArray = getPrimeArray();
unsigned long long n;
cin >> n;
while (n--)
{
unsigned long long temp;
cin >> temp;
unsigned long long sqTemp = sqrt(temp);
if (sqTemp * sqTemp == temp && primeArray[sqTemp])
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
return 0;
}