Олимпиадный тренинг

Задача . B. Т-простые числа


Известно, что простыми называются целые положительные числа, у которых ровно два различных положительных делителя. По аналогии назовем целое положительное число t Т-простым, если у t ровно три различных положительных делителя.

Вам дан массив, состоящий из n целых положительных чисел. Для каждого из них определите, является ли оно Т-простым или нет.

Входные данные

Первая строка содержит единственное целое число — количество чисел в массиве, n (1 ≤ n ≤ 105). Следующая строка содержит n целых чисел xi (1 ≤ xi ≤ 1012), разделенных пробелами.

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-битных чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.

Выходные данные

Выведите n строк: i-тая строка должна содержать «YES» (без кавычек), если число xi является Т-простым, и «NO» (без кавычек), если не является.

Примечание

В приведенном тесте даны три числа. Первое число 4 имеет ровно три делителя — 1, 2 и 4, поэтому ответ для этого числа — «YES». Второе число 5 имеет два делителя (1 и 5), а третье число 6 — четыре делителя (1, 2, 3, 6), поэтому ответ для них — «NO».


Примеры
Входные данныеВыходные данные
1 3
4 5 6
YES
NO
NO

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя