題目連結:
給定一正整數 n (2 ≦ n ≦ 1, 000, 000),求 n! 質因數分解後,各個質因數的次方之和。
首先,把 1 ~ 1, 000 之間的質數找出來。
之後,再把 2 ~ 1, 000, 000 的每個數字用上述的質數表去做質因數分解。如果上述的質數表無法整除某數,且某數不在此質數表裡,則此數為質數。
把所有質數的次方之值全部加起來。再用前綴和(Prefix Sums)的概念——陣列第一位存2!的結果;第二位存 2! 和 3 (也就是 3! )的結果;第三位存 3! 和 4 (也就是 4! )的結果……以此類推。接著輸入什麼數字,就從上述陣列直接輸出結果。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。