import java.util.ArrayList;
import java.util.Scanner;
/*
* 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
*
* 按照从小到大的顺序输出它的所有质数的因子,以空格隔开
* */
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
long n=in.nextLong();
System.out.println(getResult(n));
}
public static String getResult(long ulDataInput){
ArrayList<Long> list=new ArrayList<Long>();
while(ulDataInput!=1){//直到数是1
for(int i=2;i<=ulDataInput;i++){
if(ulDataInput%i==0){//如果能被整除
if(isPrime((long) i)){
list.add((long)i);//是质数就添加到list中
ulDataInput/=i;//把除的结果迭代
break;
}
}
}
}
//list转换为字符串
StringBuffer sb=new StringBuffer();
for(int i=0;i<list.size();i++){
sb.append(list.get(i));
sb.append(" ");
}
sb.deleteCharAt(sb.length()-1);
return sb.toString();
}
public static boolean isPrime(Long k){//判断能被整除的因子是不是质数,质数只有1和它本身的约数,有其他约数的都不是质数
for(int i=2;i<Math.sqrt(k);i++){
if(k%i==0){
return false;
}
}
return true;
}
}