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
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=' ') while num % 2 == 0: print(2,end= ' ') num //= 2 for i in range(3,num,2): while num % i == 0: print(i,end= ' ') num //= i if num !=1: print(num)