# 题目描述
给定 n 组 ai,bi,pi,对于每组数据,求出 aibi mod pi 的值
# 算法思路
对于数 aibi mod pi 有,bi 可以拆成二进制表示
以 45 mod 10 为例
5 的二进制表示为 101
45=420∗422
不断取出 bi 的最后一位,在取的过程中,a 不断平方
c++1 2 3 4 5 6 7 8 9
| int qmi(int a, int b, int p) { int res = 1; while(b) { if(b & 1) res = res * a % p; b >>= 1, a = a * a % p; } return res; }
|