通过while循环可以进一步降低算法复杂度,这种算法在遇到质数因子比较多的大数时,可以较快的运行处结果

num=int(input())
k=2
while True:
    if k<(int(math.sqrt(num))+1) and num%k==0:
        num/=k
        print(k,end=' ')
    elif k<(int(math.sqrt(num))+1) and num%k!=0:
        k+=1
    elif k>=int(math.sqrt(num))+1:
        print(int(num))
        break