#2#6#9 TLE了
#include <iostream>
using namespace std ;
long long m = 0 ;
int ans[100000001] ;
void fun ( long long n , long long p ) {
if ( n == 1 ) return ;
if ( n%p == 0 ) ans[p]++ , m=p , fun ( n/p , p ) ;
else fun ( n , p+1 ) ;
}
int main () {
long long n ;
cin >> n ;
fun ( n , 2 ) ;
for ( long long i = 1 ; i < m ; i ++ ) {
if ( ans[i] == 1 ) cout << i << " * " ;
else if ( ans[i] > 1 ) cout << i << '^' << ans[i] << " * " ;
}
if ( ans[m] == 1 ) cout << m ;
else if ( ans[m] > 1 ) cout << m << '^' << ans[m] ;
return 0 ;
}