快速ni
利用2进制的思想(把 要^的数 二进制化)
同时 将 a 化为二进制每一位的单位 a乘着走
仔细看代码
int n,m; long long P; long long qsn(long long a,long long b) // 函数中的long long { long long ans=1; // ans 要等于1 啊 while(b) { if(b&1) ans=(ans*a)%P; /// 二进制化 &1 的意思是 看它个位是不是 1 (二进制而言) b>>=1; // 每一次向右移动 就是 除二 将最右边的那位抹去。 a=(a*a)%P; } return ans; }