题解 | #质数因子#

质数因子

https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607


import math

def prime_factors(n):
    factors = []
    while n % 2 == 0:
        factors.append(2)
        n //= 2
    for i in range(3, int(math.sqrt(n)) + 1, 2):
        while n % i == 0:
            factors.append(i)
            n //= i
    if n > 2:
        factors.append(n)
    return factors

if __name__ == "__main__":
    num = int(input())
    factors = prime_factors(num)
    print( " ".join(map(str, factors)))



全部评论
循环中逐个检查奇数作为潜在的质因子,并且在循环内部使用了 sqrt(n) 作为循环终止条件,避免了多余的计算。
点赞 回复 分享
发布于 2024-03-10 15:39 北京

相关推荐

牛客96763241...:杭电✌️也是打完招呼,没人回吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务