题解 | #质数因子#

质数因子

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

def calcurate(digit, record):
    for i in range(2, int(digit ** 0.5) + 1):
        if digit % i == 0:
            record.append(i)
            calcurate(digit // i, record)
            break
    return record       

digit = int(input())
record = calcurate(digit, [])
for i in record:
    digit = digit // i
record.append(digit)
print(' '.join(list(map(str, record))))

使用递归的算法求解质数因子,每次递归会找到最小的质数因子,最后再添加剩余的质数因子。这里需要注意的是,每次的循环只需要从2开始直到 int(digit**0.5)+ 1

全部评论

相关推荐

点赞 评论 收藏
分享
刘湘_passion:出国旅游?那就小心你的腰子咯
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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