首页 > 其他 > 详细

[POJ]P1845 Sumdiv

时间:2019-01-26 10:21:42      阅读:148      评论:0      收藏:0      [点我收藏+]

原题链接:P1845 Sumdiv

题意

给定$A,B$,求$A^B$对9901取模的值。

分析

先说说我的第一思路:模数是很小的,完全可以开一个桶放下所有的幂次方。

所以我们可以把每个数分解质因数了,然后把每个质数的所有幂次方装进桶里。

然后我们从$1$到$9901$枚举每一位,同时统计他们的个数积,最后答案加上(个数积$\times$幂次方积)就可以了。。

 

发现时间有点爆炸。。。

而且这些所谓的优化好像是用处不大的。。

 

考虑从数论的层面上解决??

首先$$A^B=p_1^{Ba_1}\times p_2^{Ba_2}\times \cdots \times p_m^{Ba_m}$$

那么所有的质因数的和就是枚举每一位指数

我们先提取含$p_1$的式子

$$\sum_{k_1,k_2,\cdots ,k_m}^{k_1\leq Ba_1,k_2\leq Ba_2,\cdots ,k_m\leq Ba_m}{({p_1}^{k_1}+{p_2}^{k_2}+\cdots +{p_m}^{k_m})(\cdots)}$$

然后我们把后面的也化简之后,每个因数就剩下它的等比数列求和了,我们利用求和公式

最后答案就是$$\sum_{i=1}^m{\frac{p_i^{Ba_i+1}-1}{p_i-1}}$$

 

[POJ]P1845 Sumdiv

原文:https://www.cnblogs.com/onglublog/p/10322544.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!