华为机考入门python3--(6)牛客6-质数因子

分类:质数、素数

知识点:

  1. 取余符号%      5%3 = 2

  2. 取整符号//     5//3 = 1

  3. list中int元素转str    map(str, list)

题目来自【牛客】

华为机考入门python3--(6)牛客6-质数因子_第1张图片

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 软件工程小施同学

你可能感兴趣的:(华为机试机考,华为,算法)