# ZeroJudge - a505: B. T-primes ### 題目連結:https://zerojudge.tw/ShowProblem?problemid=a505 ###### tags: `ZeroJudge` `數學` `質數` ```cpp= #include <iostream> #include <cmath> using namespace std; #define SIZE 10000000 int primes[SIZE], primeAmount; bool notPrime[SIZE] = { true, true }; void Initialize() { for (int i = 2; i < SIZE; ++i) { if (!notPrime[i]) primes[primeAmount] = i, ++primeAmount; for (int j = 0; i * primes[j] < SIZE; ++j) { notPrime[i * primes[j]] = true; if (!(i % primes[j])) break; } } } int main() { long long number, buffer; int times; Initialize(); scanf("%d", &times); while (times--) { scanf("%lld", &number); buffer = sqrt(number); puts(buffer * buffer == number && !notPrime[buffer] ? "YES" : "NO"); } } ```