码迷,mamicode.com
首页 > 其他好文 > 详细

快速幂+线性筛

时间:2017-09-21 18:06:48      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:循环   height   需要   次方   style   分布   直接   sub   质数   

求 Σik  (i=1...n) mod m

0 < m ≤ 3 × 10^6 , n, k ≤ 10^18

首先想到只需要i只需要循环到m,后面的值可以通过前缀和算出

所以问题变为了

Σik  (i=1...m) mod m

可以看出直接快速幂会超时

那么只需要找出1~m中质数的k次方,其他的数用线性筛算出值

因为1~m中大约有m/(Inm)个质数

一次快速幂所用的复杂度为log级别

所以总复杂度大约是O(m)级别的

灵活运用区间内素数的分布

强得一批

 

快速幂+线性筛

标签:循环   height   需要   次方   style   分布   直接   sub   质数   

原文地址:http://www.cnblogs.com/NicoDafaGood/p/7569476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!