题解 | #质数因子#
质数因子
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])
质数因子不会超过开方,不考虑这一点会超时