回头看,轻|

Ke_scholar

园龄:2年1个月粉丝:30关注:10

快速幂模板

//快速幂
//底数128
long long ksm(__int128 a, long long b, long long p) {
__int128 res = 1;
while (b) {
if (b & 1)res = res * a % p;
b >>= 1;
a = a * a % p;
}
return res;
}
//不带模参数,非128
long long ksm(long long a, long long b) {
long long res = 1;
while (b) {
if (b & 1)res = res * a;
b >>= 1;
a = a * a;
}
return res;
}
//带模
long long ksm(long long a, long long b,long long mod) {
long long res = 1;
while (b) {
if (b & 1)res = (res % mod * a % mod) % mod;
b >>= 1;
a = (a % mod * a % mod) % mod;
}
return res % mod;
}

本文作者:Ke_scholar

本文链接:https://www.cnblogs.com/Kescholar/p/17801094.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ke_scholar  阅读(18)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起