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

次方求模

时间:2020-01-24 23:39:00      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:span   cout   str   class   复杂   strong   style   out   col   

a的n次方余m

for(int i = n; i > 0; i >>= 1, a = a * a % M)
    if(i & 1) s = s * a % M;
cout << s;

时间复杂度为$O(logn)$,相当于把指数转换为二进制再运算。

例如,$5^{11}\%3=5^{1011}\%3=(5^{1000}*5^{10}*5^{1})\%3=((5^{1000}\%3)*(5^{10}\%3)*(5^{1}\%3))\%3$

次方求模

标签:span   cout   str   class   复杂   strong   style   out   col   

原文地址:https://www.cnblogs.com/nioh/p/12232649.html

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