这题的关键在于时间,即循环次数不能过多,解决问题的方案就是把输入的数开方
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 = ' ')


京公网安备 11010502036488号