本文共 487 字,大约阅读时间需要 1 分钟。
题目描述
求 a 的 b 次方对 p 取模的值。输入格式
三个整数 a,b,p ,在同一行用空格隔开。输出格式
输出一个整数,表示a^b mod p的值。数据范围
1≤a,b,p≤\(10^{9}\)输入样例:3 2 7输出样例:2大致思路:任何一个数都可以写成
其中\(p_i\)为非负整数,所以可以利用二分把这题算法复杂度降低到logn
#includeusing namespace std;int main(){ int a, b, p; cin >> a >> b >> p; int res = 1 % p; while (b) { if (b & 1) res = res * 1ll * a % p; a = a * 1ll * a % p; b >>= 1; } cout << res << endl; return 0;}
转载地址:http://qktkz.baihongyu.com/