题意:求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