分类:质数、素数
知识点:
-
取余符号% 5%3 = 2
-
取整符号// 5//3 = 1
-
list中int元素转str map(str, list)
题目来自【牛客】
def prime_factors(n):
"""
输入一个正整数n,输出它的所有质因子(重复的也要列举)
"""
factors = [] # 存储质因子的列表
d = 2 # 从2开始尝试是否为n的因子
while d * d <= n: # 只需要检查到 sqrt(n),节省计算量
if n % d == 0: # 如果d是n的因子
factors.append(d) # 将d添加到质因子列表中
n //= d # 更新n的值,n=n/d
else:
d += 1 # 如果d不是n的因子,尝试下一个数
if n > 1: # 如果n大于1,说明它本身是一个质数
factors.append(n) # 将n添加到质因子列表中
return factors # 返回质因子列表
# 测试代码
input_str = input().strip()
output = prime_factors(int(input_str))
# map() 是 Python 的内置函数,它对一个可迭代对象(如列表、元组或字符串)中的每个元素应用一个函数,并返回一个迭代器,该迭代器产生应用函数后的结果
print(" ".join(map(str, output)))
by 软件工程小施同学