#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<set>
#include<map>
using namespace std;
const int maxn=10010;
typedef long long ll;
bool Hash[maxn]={0};
int isPrime(int num){
if(num<=1) return 0;
int len=(int)sqrt(1.0*num);
for(int i=2;i<=len;i++){
if(num%i==0)
return 0;
}
return 1;
}
int main()
{
ll num;
scanf("%lld",&num);
ll len=(ll)sqrt(num*1.0);
ll anslen=0, ansI=0;
ll max=0;
for(ll i=2;i<=len;i++){
ll temp=i,j=i;//乘积
anslen=0;
while(num%temp==0){
anslen++;
temp*=(++j);
}
if(anslen>max){
max=anslen;
ansI=i;
}
}
if(max==0){
printf("1\n");
printf("%lld",num);
}else{
printf("%lld\n",max);
for(int i=0;i<max;i++){
if(i>0)printf("*");
printf("%lld",ansI+i);
}
}
return 0;
}