function Main(input) {
	input = input.trim();
	var N = parseInt(input, 10);
	var vec_p = [];
	var vec_e = [];
	var tmpN = N;
	var j = 0;
	var k = 0;
	var ans = 0;
	var checkTmpN = 1;
	var tmp;
	for (var i = 2; i <= Math.sqrt(N); i++){
		j = 0;
		same_number:
		while (true) {
			if (tmpN % i === 0){
				j ++;
				tmpN = tmpN / i ;
				checkTmpN *= i;
				if (j === 1) {
					vec_p.push(i);
					vec_e.push(1);
					k++;
				} else {
					vec_e[k - 1] ++;
				}
			} else {
				break same_number;
			}
		}
	}
	if (checkTmpN !== N) {
		vec_p.push(N / checkTmpN);
		vec_e.push(1);
	}
	for (var i = 0; i < vec_e.length; i++){
		tmp = Math.floor((Math.sqrt(1 + (8 * vec_e[i])) - 1) / 2);
		ans += tmp;
	}
 	console.log(ans,vec_p,vec_e);	
}   

Main(require("fs").readFileSync("/dev/stdin", "utf8"));