#include<bits/stdc++.h>
using namespace std;
long long n,p[100000001],x,f[100000001];
void lk(long long n)
{
int i=2;
while(n!=1)
{
if(n%i==0)
{
p[i]++;
if(i!=f[x]) f[++x]=i;
n/=i;
i=2;
}
else i++;
}
}
int main()
{
cin>>n;
if(n==1)
{
cout<<1;
return 0;
}
lk(n);
for(int i=1;i<=x-1;i++)
{
if(p[f[i]]==1) cout<<f[i];
else cout<<f[i]<<'^'<<p[f[i]];
cout<<" * ";
}
if(p[f[x]]==1) cout<<f[x];
else cout<<f[x]<<'^'<<p[f[x]];
return 0;
}