您的位置:首页 > 其它

JZOJ5340. 【NOIP2017模拟9.2A组】春思(2017.9A组)

2017-09-06 19:34 197 查看
https://jzoj.net/senior/#main/show/5340

想法:

a=(p[1]^q[1])(p[2]^q[2])(p[i]^q[i)…( (p[i]为a的质因子,q[i]为对应的指数)

那么a的约数和=(1+p[1]+p[1]^2+….+p[1]^q[1])*(1+p[i]+p[i]^2+…+p[i]^q[i])……

a^b实际上是对每个a的质因子的指数*b

a^b的约数和=(1+p[1]+p[1]^2+….+p[1]^(q[1]*b))(1+p[i]+p[i]^2+…+p[i]^(q[i]*b))……

然后就是求出每个等比数列的和,在乘起来

用线筛求素数,a的质因子及其指数

然后对于每个等比数列

令S=1+p+p^2+p^3+….+p^q

pS=p+p^2+…..+p^(q+1)

pS-S=p^(q+1)-1

(pS-S)/(p-1)=S=(p^(q+1)-1)/(p-1)

所以求出(p^(q+1)-1)/(p-1)(逆元)就好啦

递归

对于每个等比数列

S=1+p+p^2+p^3+….+p^q

如果p%2==0

那么S=(1+p+p^2+p^(q/2))*(1+p^(q/2))

如果p%2==1

那么S=(1+p+p^2+p^(q/2(下取整)))*(1+p^(q/2))+p^q

递归求解即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: