import java.io.*;
import java.util.*;
public class Main {
/**
* 要求n的质因子,只用遍历2~(n-1)之间的每一个整数i,
* 如果i能被n整除,则i是n的因子;
* 优化:如果i是n的质因子,则n必存在另一个因子j>sqrt(n),
* 例如:16=2*8,16=4*4,2和8分别小于大于4;因此如果在2~sqrt(n)
* 之间没有因子,那么在sqrt(n)~n之间肯定不会有因子。
* 所以只用遍历2~sqrt(n)之间的整数就可以了。
* 通过n/=i,剔除已经求出的质因子,不断减小n,缩小循环次数
*
* @param args
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long num = scanner.nextLong();
//条件是i*i <= num否则会超时
//如果是i <= num会超时
for (long i = 2; i * i <= num; ++i) {
while (num % i == 0) {
System.out.print(i + " ");
num /= i;
}
}
System.out.println(num == 1 ? "" : num + " ");
}
}