本篇部落格講解一下 xy 的因子數,因子和的求解問題。
首先根據算術基本定理(唯一分解定理)將 x 進行質因數分解:
x = p1
c1 × p2
c2 × ··· × pn
cn則 x 的正因數可以表示為: (0 ≤ bi ≤ ci)
每個 bi 有 ci + 1 種取法,根據乘法原理可得 x 的正因數個數為(π為連乘積符號):
(c1 + 1) × (c2 + 1) × ··· × (cn + 1) = πi=1
n (ci + 1)
x 的所有正因數之和為:
(1 + p1 + p1
2 + ··· + p1
c1) × (1 + p2 + p2
2 + ··· + p2
c2) × ··· × (1 + pn + pn
2 + ··· + pn
cn) = πi=1
n ( ∑j=0
ci pi
j )解釋如下:
p1c1
的因數有: p1
0, p1
1, p1
2, …, p1
c1… …
pncn
的因數有: pn
0, pn
1, pn
2, …, pn
cn而 x 的因數就是在 p1
c1, p2
c2, …, pn
cn 的因數中各取乙個然後相乘得來,再由乘法原理得到上式。
經過上面的論述,同理可得:
xy = (p1
c1 × p2
c2 × p3
c3 × … × pn
cn) y
xy 的正因數個數為:
(yc1 + 1) × (yc2 + 1) × ··· × (ycn + 1) = πi=1
n (yci + 1)
xy 的所有正因數之和為:
(1 + p1 + p1
2 + ··· + p1
yc1) × (1 + p2 + p2
2 + ··· + p2
yc2) × ··· × (1 + pn + pn
2 + ··· + pn
ycn) = πi=1
n ( ∑j=0
yci pi
j )至於計算,快速冪 + 等比數列求和公式 ( + 逆元 + 快速乘) 即可。
相關題目會後續更新。
如有錯誤或不足希望大家能夠及時指出,謝謝。
因子和因子個數
所有因子個數 n 與所有因子的和 n 都是乘 積 性函式。定義1 因子和函式 定義為整數n的所有正因子之和,記為 n 定義2 因子個數函式 定義為正整數n的所有正因子個數,記為 n 定理1 設p是乙個素數,a是乙個正整數,那麼 n 1 p p 2 p a p a 1 1 p 1 n a 1 定理2 ...
因子和與因子個數
摘抄於 acm icpc 程式設計系列數論及應用 基本理論 定義1 因子和函式 定義為整數n的所有正因子之和,記為 n 定義2 因子個數函式 定義為正整數n的所有正因子個數,記為 n 定理 定理1 如果f是積性函式f n 那麼f的和函式f n d n f d 也是積性函式 推論 因子和函式 與因子個...
因子數與因子和 唯一因式分解
輸入乙個正整數n,求出這個數字存在多少個因子,以及因子之和。存在多組測試資料,每組測試資料輸入乙個正整數n 1 n 10 9 對於每組測試資料輸出一行,包含兩個數字,分別是因子數和因子和。12 4735 6 28 2 48 4 48 n p1 e1 p2 e2 p3 e3 pn en 因子數 cnt...