t-prime

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knight_Ren

资源不易,打赏随意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值