题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
# 计算180的所有质因子
def prime_factors(n):
"""返回数字n的所有质因子及其幂次"""
factors = {}
# 2的幂次
while n % 2 == 0:
if 2 not in factors:
factors[2] = 0
factors[2] += 1
n //= 2
# 奇数质因子
for i in range(3, int(n ** 0.5) + 1, 2):
while n % i == 0:
if i not in factors:
factors[i] = 0
factors[i] += 1
n //= i
# 如果剩余的n是质数
if n > 2:
factors[n] = 1
return factors
n = int(input())
factors_dict = prime_factors(n)
factors_list = [key for key, value in factors_dict.items() for _ in range(value)]
factors_str = " ".join(map(str,factors_list))
print(factors_str)


美的集团公司福利 798人发布