用迭代去处理质子问题,在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(' '))