切換
舊版
前往
大廳
主題

ZeroJudge - b369: [福州19中]因子和階乘 解題心得

Not In My Back Yard | 2019-01-22 12:54:02 | 巴幣 0 | 人氣 98

題目連結:


題目大意:
給定一正整數 n (2 ≦ n ≦ 30, 000),代表要對 n! 作質因數分解。

例如, 5! = 120 = 2 ^ 3 × 3 × 5 。此時要輸出的是各個質因數的指數,也就是 3 、 1 、 1 ,輸出格式請照範例輸出。



範例輸入:
53



範例輸出:
53!=49 23 12 8 4 4 3 2 2 1 1 1 1 1 1 1



解題思維:
首先,建立質數表。再來,對 n 值跑過一次那個質數表。

對於每個質數 P ,其在 n! 的質因數乘積的指數部分為
n ÷ P + n ÷ (P ^ 2) + n ÷ (P ^ 3)+……
例如,質數 2 在 5! 的指數部分,我們需要知道 1 ~ 5 有多少數字可以被2整除,也需要知道 1 ~ 5 有多少整數會被 4 整除、被 8 整除 …… 也就是上式代表的意涵。在此例為 5 ÷ 2 + 5 ÷ 4 = 3

把每個質數的指數部分都存下來,然後照著順序輸出即可。(指數部分為 0 的不用輸出)

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作