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