n = int(input()) # 取得題目的輸入值,並轉為整數
factor = 2 # 0 和 1 不能為因數,所以從 2 開始
ans = [] # 存放質因數分解的結果
# 如果輸入的值的是 0 或 1,則顯示錯誤訊息
if n == 0 or n == 1:
print("請輸入大於1的正整數") # 這行是本人額外加的提示訊息,本題非必要
# 進行質因數分解,當 n > 1 時繼續執行
while n > 1:
count = 0 # 記錄該質因數的次方(預設為 0)
# 當 n 能被 factor 整除時,記錄該質因數的次方
while n % factor == 0: # 當n能被factor整除時,進入迴圈(第一次進入迴圈時, factor為2,之後factor會逐漸變大)
count += 1 # 質因數次方 +1
n //= factor # n 除以factor後覆蓋n
# 如果 count 不為 0,表示 factor 是 n 的質因數之一
if count != 0:
if count == 1:
ans.append(f"{factor}") # 如果該質因數的次方是 1,直接記錄數字
else:
ans.append(f"{factor}^{count}") # 如果次方大於 1,記錄成「質數^次方」的格式
factor += 1 # factor加1後,進入下一次迴圈
print(" * ".join(ans)) # 用 "*" 連接所有因數,並輸出結果