分解质因数,从最小的开始不停除法,除到为1。或者,除到最后除不了,就输出自己。

有两个坑。第一个就是这个数本身是个质数。第二就是可能会超时,除到它的平方值即可。
还可以判断下除数是不是质数。因为会增加判断的次数,得不偿失。

while True:
    try:
        import math

        n = int(input())
        i = 2
        maxi = math.sqrt(n)
        while i <= maxi:
            if n % (i) == 0:
                n = n / i
                print(i, end=' ')
            else:
                i += 1
        if n != 1:
            print(int(n), end=' ')

    except:
        break