题解 | #质数因子#
质数因子
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