#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
long long a[1000000],length=0;
long long n;
long long bb,tt=1,pp[100000],ppp[100000];
long long maxn=1;
int dfs(long long sum,long long m)
{
if(sum>=n){
return -1;
}
for(long long i=m+1;i<length;i++){
if(a[i-1]==a[i]-1){
if(sum*a[i]<=n){
tt++;
}
// cout<<tt<<' '<<maxn<<' '<<a[i]<<' '<<m<<endl;
if(tt>maxn){
maxn=tt;
long long t=tt;
long long k=i;
while(t>0){
pp[t]=a[k];
t--;
k--;
}
}
}
else{
tt=1;
}
int flag=dfs(a[i]*sum,i);
if(flag==-1){
tt=1;
break;
}
}
return -1;
}
int main()
{
scanf("%lld",&n);
long long j=0;
for(long long i=2;i<=sqrt(n)+1;i++){
if(n%i==0){
a[j]=i;
j++;
}
}
length=j;
if(length==0){
printf("1\n%lld",n);
return 0;
}
for(long long i=0;i<length;i++){
tt=1;
// cout<<a[i]<<' '<<i<<endl;
dfs(a[i],i);
}
printf("%lld\n",maxn);
if(maxn==1){
pp[1]=a[0];
}
printf("%lld",pp[1]);
for(long long i=2;i<=maxn;i++){
printf("*%lld",pp[i]);
}
return 0;
}