数字2的乘法逆元
快捷计算方式如下
inv2=mod-mod/2;
推导如下
摘自https://blog.youkuaiyun.com/acdreamers/article/details/8220787
奇质数是既是奇数又是质数的数
2是唯一的偶质数,简而言之,以下推导对p=2不适用,其它质数都适用。

对上式的补充说明:
k=M%i=M-M/i*i
t*i=M/i*i
t*i+k=M/i*i+M%i=M/i*i+M-M/i*i=M,请注意M%M=0

对上式的补充说明:
inv[i]=(-M/i)*inv[M%i]%M
进一步处理
注意:M*inv[M%i]%M=0
inv[i]=(-M/i)*inv[M%i]%M+M*inv[M%i]%M
inv[i]=(M-M/i)*inv[M%i]%M

typedef long long ll;
const int N = 1e5 + 5;
int inv[N];
void inverse(int n, int p) {
inv[1] = 1;
for (int i=2; i<=n; ++i) {
inv[i] = (ll) (p - p / i) * inv[p%i] % p;
}
}
244

被折叠的 条评论
为什么被折叠?



