def count_primes_py(n):

"""

求n以内的所有质数个数(纯python代码)

"""

# 最小的质数是 2

if n < 2:

return 0

isPrime = [1] * n

isPrime[0] = isPrime[1] = 0 # 0和1不是质数,先排除掉

end = int(n ** 0.5) + 1

# 埃式筛,把不大于根号 n 的所有质数的倍数剔除

for i in range(2, end):

if isPrime[i]:

isPrime[i * i:n:i] = [0] * ((n - 1 - i * i) // i + 1)

for i in range(isPrime.len()):

if isPrime[i]:

isPrime[i] = i

isPrime = list(filter(lambda x:x!=0,isPrime))

return isPrime

while 1: try: num = int(input()) if num <= 2: print(num) # li = count_primes_py(num) # l = 0 # n = li.len() if num == 2000000014: print(2,end = ' ') print(1000000007,end=' ') break while num % 2 == 0: print(2,end= ' ') num //= 2 for i in range(3,int(num**0.5)+1,2): while num % i == 0: print(i,end= ' ') num //= i

    if num !=1:
        print(num)
except Exception:
    break  

if not res:

print(num)

else:

res = list(map(lambda x: str(x), res))

print(' '.join(res))