#include<iostream>
using namespace std;
int main(){
int long Number; //變數假設和輸入 #以輸入20為例
bool is_First = true; //是否為第一次出現
cin>>Number;
int long i=2; //一開始的除數
while(Number>=i){ //20>=2
int count=0; //次方數
while(Number%i==0){ //如果輸入的數字整除2的話 執行底下 #20/2 整除//#10/2 也整除
Number/=i; //20/2 =10 //10/2=5
count+=1; //次方數加一
}
if (count>1 && is_First==true){ //若為第一次出現而且次方數大於1:
cout<<i<<'^'<<count;
is_First=false;
}
else if (count==1 && is_First==true){ //若為第一次出現而且次方數等於1:
cout<<i;
is_First=false;
}
else if (count>1 && is_First==false){ //若不是第一次出現而且次方數大於1:
cout<<" * "<<i<<'^'<<count;
}
else if (count==1 && is_First==false){ //若不是第一次出現而且次方數等於1:
cout<<" * "<<i;
}
else{ //若上述四個條件不成立 (也就是在這一輪並沒有執行while迴圈)
i+=1; //將i+1之後再來重新走一次所有步驟
}
}
return 0;
}