这题的关键在于时间,即循环次数不能过多,解决问题的方案就是把输入的数开方

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 = ' ')