#include <bits/stdc++.h>
using namespace std;
long long prime[123121221];
long long a[123123112];
bool isprime(long long n){
if(n < 2)return 0;
for(long long i = 2; i <= sqrt(n); i++){
if(n % i == 0)return 0;
}
return 1;
}
int main(){
long long n;
cin >> n;
long long cur = 0;
for(long long i = 2; i <= n; i++){
if(isprime(i)){
prime[++cur] = i;
}
}
long long nn = n;
bool f = 1;
long long cnt = 0;
if(n % 2 == 0){
while(nn % 2 == 0)
{
nn /= 2;
cnt++;
}
if(a[2] == 1){
cout << 2;
}
else cout << 2 << "^" << cnt;
f = 0;
}
for(long long i = 3; i <= prime[cur]; i += 2){
nn = n;
if(isprime(i)){
long long cnt = 0;
while(nn % i == 0)
{
nn /= i;
cnt++;
}
if(cnt == 1){
if(f){
cout << i;
}
else
cout << " * " << i;
}
else if(a[i] > 1){
if(f){
cout << i << "^" << cnt;
}else
cout << " * " << i << "^" << cnt;
}
f = 0;
}
}
return 0;
}