#include <bits/stdc++.h>
using namespace std;
long long n;
unordered_map<long long,long long> preim;
void aiko(long long n){
preim[0]=preim[1]=1;
for(long long i=2;i<=n;i++){
if(preim[i]==0){
for(long long j=i*i;j<=n;j*=2){
preim[j]=1;
}
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n;
aiko(n);
for(long long i=2;i<=n;i++){
if(preim[i]==0 && n%i==0){
long long cnt=1;
n/=i;
cout<<i;
if(n%i==0){
cout<<"^";
while(n%i==0){
n/=i;
cnt++;
}
cout<<cnt;
}
if(n!=1){
cout<<" * ";
}
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmxvbmcgbG9uZyBuOwp1bm9yZGVyZWRfbWFwPGxvbmcgbG9uZyxsb25nIGxvbmc+IHByZWltOwp2b2lkIGFpa28obG9uZyBsb25nIG4pewoJcHJlaW1bMF09cHJlaW1bMV09MTsKCWZvcihsb25nIGxvbmcgaT0yO2k8PW47aSsrKXsKCQlpZihwcmVpbVtpXT09MCl7CgkJCWZvcihsb25nIGxvbmcgaj1pKmk7ajw9bjtqKj0yKXsKCQkJCXByZWltW2pdPTE7CgkJCX0KCQl9Cgl9Cn0KaW50IG1haW4oKXsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUoMCksY291dC50aWUoMCk7CgljaW4+Pm47CglhaWtvKG4pOwoJZm9yKGxvbmcgbG9uZyBpPTI7aTw9bjtpKyspewoJCWlmKHByZWltW2ldPT0wICYmIG4laT09MCl7CgkJCWxvbmcgbG9uZyBjbnQ9MTsKCQkJbi89aTsKCQkJY291dDw8aTsKCQkJaWYobiVpPT0wKXsKCQkJCWNvdXQ8PCJeIjsKCQkJCXdoaWxlKG4laT09MCl7CgkJCQkJbi89aTsKCQkJCQljbnQrKzsKCQkJCX0KCQkJCWNvdXQ8PGNudDsKCQkJfQoJCQlpZihuIT0xKXsKCQkJCWNvdXQ8PCIgKiAiOwoJCQl9CgkJfQoJfQoJcmV0dXJuIDA7Cn0=