#include<stdio.h>
#include<stdbool.h> //記得引用
int main(){
int long Number; //變數假設和輸入 #以輸入20為例
bool is_First = true; //是否為第一次出現
scanf("%lld",&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:
printf("%d^%d",i,count);
is_First=false;
}
else if (count==1 && is_First==true){ //若為第一次出現而且次方數等於1:
printf("%d",i);
is_First=false;
}
else if (count>1 && is_First==false){ //若不是第一次出現而且次方數大於1:
printf(" * %d^%d",i,count);
}
else if (count==1 && is_First==false){ //若不是第一次出現而且次方數等於1:
printf(" * %d",i);
}
else{ //若上述四個條件不成立 (也就是在這一輪並沒有執行while迴圈)
i+=1; //將i+1之後再來重新走一次所有步驟
}
}
}