#include<bits/stdc++.h>
using namespace std;
long long n,z=0;
bool sushu(long long x){
for(int i=2;i<=sqrt(x);i++){
if(x%i==0) return false;
}
return true;
}
void find(long long x,long long y){
if(x%y==0){
z++;
find(x/y,y);
}
}
int main(){
scanf("%lld",&n);
if(sushu(n)){
printf("%lld",n);
return 0;
}
for(int i=2;i<=n;i++){
if(sushu(i)&&n%i==0){
z=0;
find(n,i);
n/=pow(i,z);
if(n==1){
if(z==1) printf("%d",i);
else printf("%d^%d",i,z);
}
else{
if(z==1) printf("%d * ",i);
else printf("%d^%d * ",i,z);
}
}
if(sushu(n)){
printf("%d",n);
return 0;
}
}
return 0;
}
记录