这题的关键在于时间,即循环次数不能过多,解决问题的方案就是把输入的数开方
import math num1 = int(input()) num2 = math.ceil(num1 ** 0.5) + 1 k = 0 prime_factor = [] for i in range(2, num2): while num1 % i == 0: num1 = num1 // i k = 1 prime_factor.append(i) if num1 <= i: break if(num1 != 1): prime_factor.append(num1) for j in prime_factor: print(j, end = ' ')