#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
using namespace std;
#define int long long
int n;
bool isPrime(int n){
if(n < 2) return false;
else if(n == 2) return true;
for(int i = 2;i * i <= n;i++){
if(n % i == 0){
return false;
}
}
return true;
}
int ans[114514];
int tt;
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
if(isPrime(n) == true){
cout<<n<<endl;
return 0;
}
for(int i = 2;i <= n;i++){
if(isPrime(i) == true){
ans[i] ++;
n /= i;
//cout<<ans[i]<<endl;
}
if(n == 0){
tt = n;
}
}
for(int i = 2;i <= n;i++){
if(isPrime(i) == true){
cout<<i;
ans[i]--;
if(ans[i] > 0){
cout<<"^"<<ans[i];
}
if(tt == i){
cout<<"*";
}else{
continue;
}
}
}
return 0;
}