算法基础之快速幂
2023-12-21 23:18:45
快速幂
-
核心思想:logk的复杂度求出ak mod p
-
将k拆成若干个2的n之和 (二进制)
-
#include<iostream> #include<algorithm> using namespace std; typedef long long LL; LL qmi(int a,int k,int p) { LL res = 1 % p; while(k) //k转为二进制 还有正数 就进行 { if(k & 1) res = res * a % p; //k个位为1 需要乘上 k >>= 1; a = (LL)a *a %p; //强转成LL 否则会爆 } return res; } int main() { int n; cin>>n; while(n--) { int a,k,p; cin>>a>>k>>p; cout<<qmi(a,k,p)<<endl; } }
-
文章来源:https://blog.csdn.net/Pisasama/article/details/135141071
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!