用迭代去处理质子问题,在2000000014超大数时遇到内存及时间问题,考虑当质子大于其平方根时,数本身就不存在质子或只有1和其本身,故加了 i > math.sqrt(num) 返回其本身

from sys import stdin
import math
ostr = stdin.readlines()
def zfunc(x):
    num = int(x)
    if num == 1 :
        return ' '
    for i in range(2,num+1):
        # if num == 0 :
        #     return
        # elif i == 0 or i == 1:
        #     continue
        if i>math.sqrt(num):
            i = num
        if num%i == 0:
            z = zfunc(num/i)
            return str(i) +' ' + str (z)
        else :
            continue
for i in ostr:
    #print (i.strip())
    a = zfunc(i.strip())
    print(a.lstrip(' '))