問題敘述
給定一正整數P,進行因數分解後得到n個正整數a1, a2, …, an,即a1 × a2 × … × an = P,且已知2 ≤ a1 ≤ a2 ≤ … ≤ an ≤ 9。
請寫一個程式,給定P找出a1, a2, …, an。 如果找不到滿足以上條件的因數分解,則視為無解。
如果存在多組解,請輸出長度最短的那組解,也就是n最小的。如果仍然有多組解長度一樣,請輸出字典序最小的,也就是先找出a1最小的那組解,如果仍有多組解a1同樣最小,則找出a2最小的那組解,……,以此類推,到最後找出an最小的那組解。
例如:給定P = 24,其中有兩組解的長度最短: a1 = 3、a2 = 8;a1 = 4、a2 = 6。由於「a1 = 3、a2 = 8」這一組解的字典序小於另外一組解「a1 = 4、a2 = 6」,因此它就是答案。
輸入格式:第一列有一個正整數P ( 2 ≤ P ≤ 1018 ),表示要進行因數分解的P。
輸出格式:請輸出一列正整數,相鄰兩數以一個空白隔開,分別表示a1, a2, …, an。如果無解,請以-1表示。
輸入範例1: 24 輸出範例1: 3 8
輸入範例2: 22 輸出範例2: -1
輸入範例3: 8 輸出範例3: 8
輸入範例4: 6561 輸出範例4: 9 9 9 9
評分說明: 此題目測資分成三組,每組測資有多筆測試資料,需答對該組所有測試資料才能獲得該組分數,各組詳細限制如下。 第一組 (25 分):P ≤ 103 第二組 (25 分):P為2的冪次方 第三組 (50 分):無特別限制。 |