等比数列求和模板,因数之和

该博客介绍了如何高效地求解一个数的因数之和,利用数论中的唯一分解定理,将问题转化为求解等比数列的和。通过分析质因子的次方及其组合,得出因数个数和因数和的公式,并针对奇数和偶数次方的情况分别给出计算策略。
摘要由CSDN通过智能技术生成

acwing97

题意:求A^B的所有因数之和,A和B小于5e7

肯定不能暴力求的,要用到数论知识

唯一分解定理:任何数都能写成它的质因子的次方相乘

A=p1^k1*p2^k2*...*pn^kn

A^B=p1^(k1*B)*p2^(k2*B)...pn^(kn*B)

因子的个数:任何一个质因子的次方都是因子,任何几个质因子的次方的乘积也是因子

比如12 =2^2*3^1,2的零次方,一次方,二次方,都是12的因子,3和2的零次方,一次方,二次方的乘积也是12的因子

所以因子个数为:(1+k1)*(1+k2).....(1+kn),就是对于质因子pi,它可以选择乘上它的0到ki次方

因子的和:每一个pi都可以选择乘上它的0到ki次方,然后还可以与其他质因子的次方相乘去构成其他的因数。

sum=(1+p1^1+p1^2+...p1^k1)*(1+p2^1+p2^2+...p2^k2)....(1+pn^1+pn^2+pn^3+...+pn^kn)

相当于从p1的0次方到k1次方中选一个数,再从p2的0次方到k2次方中选一个数,一直到pn

然后把它们加起来,就是所有的因数之和了

比如12=(1+2^1+2^2)*(1+3^1)=28,相当于是1*1+1*3+2*1+2*3+4*1+4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值