知识点1:限定搜索范围为2到平方根位置,降低时间复杂度;

tips:因为当n被所有不大于根号下n的【质】因子整除后,要么余1,要么余2,要么会剩下一个且仅会剩下一个大于等于根号下n小于等于n的质数(不可能出现两个不相等且同时大于根号下n的质因子a和b,这会导致a*b>n)

import math
n= int(input())
#主要限定搜索范围,不然严重超时
#如果暴力的从2除到本身,时间较长
for i in range(2,int(math.sqrt(n))+1):
    while n%i==0:
        print(i,end=' ')
        n=n//i
if n>2:#剩下的质数要打印出来,要大于2
    print(n)