2、实现模指数运算的函数,给定x、y和m,求x的y次方模m。
int ModPowerOperation(int x, int y, int m)
{
int bit = 0;//记录y的二进制的数位
long long result = 1;//返回值
for (; y != 0; bit++)
{
if ((y & 1) == 1)//如果y的当前二进制末位为1才执行
result *= ((long long)pow((int)2, (int)bit)) % m;
y >>= 1;//y右移一位,相当于整除2
}
return result;
}
3、设p = 23和a = 5,使用费尔马小定理计算a^{2020} mod p?
解: mod 23= mod 23 = mod 23
= mod 23 =(3*2) mod 23 =6
4