怎样快速的算出一个数所以因数的和?

2024-11-20 06:37:40
推荐回答(2个)
回答1:

先分解质因数,设 n=p1^m1*p2^m2*....*pk^mk ,
则 n 的所有因数的和为
(1+p1+p1^2+..+p1^m1)*(1+p2+p2^2+...+p2^m2)*....*(1+pk+pk^2+...+pk^mk)。
可以利用公式 1+x+x^2+....+x^n=[x^(n+1)-1]/(x-1) 将上式化简。

如求 3600 的所有因数的和。
因为 3600=2^4*3^2*5^2,
所以 3600 的所有因数的和为
(1+2+4+8+16)*(1+3+9)*(1+5+25)=(32-1)/1*(27-1)/2*(125-1)/4=12493 。

回答2:

举个例子
N=3^5 *7^10 * 11^13
因子和=(1+3+3^2+...+3^5)(1+7+7^2+...+7^10)(1+11+11^2+.....+11^13)---展开就是所有因数
=(3^6 -1)/(3-1) *(7^11 -1)/(7-1) *(11^14 -1)/(11-1)