t-prime
总时间限制:
20000ms
单个测试点时间限制:
2000ms
内存限制:
65535kB
描述
对于正整数 n,如果恰好有且仅有三个不同的正整数能整除n,则称 n 为 t-prime 数。例如,4、25 是 t-prime 数,6、16 不是 t-prime 数。
现输入若干个正整数,要求写程序确定其中的每一个数是否为 t-prime 数。
输入
第一行为正整数 n,代表输入整数的个数。
接下来的 n 行中,每行有一个正整数。
输出
假设输入了 n 个正整数,则程序一共输出 n 行。如果第 i 个正整数为 t-prime数,则第 i 行输出 YES,否则输出 NO。
样例输入
3
4
5
6
样例输出
YES
NO
NO
# endcoding : UTF-8
"""
@author = 寻找任大侠
@email = renjx@stu.pku.edu.cn
@creat_time = 2021/10/30 17:26
"""
# 首先除了1,正整数数都可以被1和本身整除,本题要求被三个数整除,第三个数
# 是平方数,排除1
# 其次要是质数的平方
import math
data = []
n = input()
for i in range(int(n)):
data.append(int(input()))
for num in data:
x = math.sqrt(num)
Flag = 'NO'
if x == int(x):
x = int(x)
if x >= 2:
for i in range(2, int(math.sqrt(x) + 1)):
if x % i == 0:
break
else:
Flag = 'YES'
print(Flag)