Description 如果一个数字有且仅有三个不相同的因子,我们输出YE5,否则输出NO Input 首先一个数字 T 代表有 T 组数据 接下来 T 行每行输入一个 n Output 如果n满足条件,我们输出 YE5 ,否则输出 NO Sample Input 10 1 2 3 4 5 6 7 8 9 10 Sample Output NO NO NO YE5 NO NO NO NO YE5 NO Hint 比如我们的4,有因子1,2,4所以是YE5 1 <= t <= 1e5 1 <= n <= 1e12 本题样例建议直接复制粘贴
时间: 2023-05-11 11:01:45 浏览: 89
clk_div3.rar_5 分频器_VHDL 分频器_一个clk三分频
这是一个判断数字是否有三个不相同因子的问题,可以使用质因数分解来解决。如果一个数字有三个不相同的因子,那么它的质因数分解后,只有三个质因数,且它们的指数都为1。因此,我们可以先对输入的数字n进行质因数分解,然后统计不同的质因数个数,如果为3,则输出YE5,否则输出NO。
以下是示例代码:
```python
import math
def is_prime(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
return False
return True
def factorize(n):
factors = []
for i in range(2, int(math.sqrt(n))+1):
while n % i == 0:
factors.append(i)
n //= i
if n > 1:
factors.append(n)
return factors
t = int(input())
for i in range(t):
n = int(input())
factors = factorize(n)
distinct_factors = set(factors)
if len(distinct_factors) == 3:
print("YE5")
else:
print("NO")
```
对于输入的每个数字n,我们先使用factorize函数对其进行质因数分解,得到它的所有质因数。然后使用set函数统计不同的质因数个数,如果为3,则输出YE5,否则输出NO。
注意,这里的is_prime函数用于判断一个数是否为质数,可以用于优化质因数分解的效率。
阅读全文