题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import math
multiple = int(input())
is_prime = 0
if multiple == 1:
print(1)
else:
factors = []
init_fac = 2
while not is_prime:
multiple_changed = 0
for v in range(2, int(math.sqrt(multiple))+1): # 质数因子不会超过开方,加1向上取整
if multiple % v == 0:
# print(multiple)
multiple //= v
multiple_changed = 1
factors.append(v)
break
if not multiple_changed:
is_prime = 1
factors.append(multiple)
output_str = ''
for v in factors:
output_str += str(v)
output_str += ' '
print(output_str[:-1])
质数因子不会超过开方,不考虑这一点会超时

查看18道真题和解析