[模板]乘法逆元
2017-08-05 12:17
190 查看
定义
乘法逆元是一个十分有用的东西。给定q,x求x−1≡y(mod q)
就是说求xy=1(mod q),y的最小值
意义
在mod p意义下xy=x×y−1
可以由此取整
求法
费马小定理
yq≡y(mod q)(q为质数)求解
我们可以通过费马小定理,得:yq−1≡1(mod q)
yq−2≡1y=y−1(mod q)
所以:
y−1≡yq−2(mod q)
线性递推
f[i]=(p−p/i)f[i mod p]int n,p,f[3000010]; int main() { n=read(); p=read(); printf("%d\n",f[1]=1); fr(i,2,n) printf("%d\n",f[i]=(ll)(p-p/i)*f[p%i]%p); rt 0; }
练手题
Luogu P3811需要快速幂
注:
程序中power(i,p−2,p)=ip−2 mod p
int n,p; int main() { n=read(); p=read(); fr(i,1,n) printf("%d\n",power(i,p-2,p)); rt 0; }
相关文章推荐
- codeforces 300C 乘法逆元 (乘法逆元模为素数的模板)
- 乘法逆元+排列组合模板
- 扩展欧几里得、求乘法逆元及其应用、中国剩余定理(互质版和非互质版)、欧拉函数、快速判素数模板
- ACM 乘法逆元 模板
- 乘法逆元 模板
- 【codevs 1200】【NOIP 2012】同余方程 拓展欧几里德求乘法逆元模板题
- luogu P3811 【模板】乘法逆元
- 乘法逆元模板
- 【模板】乘法逆元
- 乘法逆元模板
- 【模板】乘法逆元
- 乘法逆元模板
- 求乘法逆元模板(扩展欧几里得)
- 模板:欧几里得 扩展欧几里得 乘法逆元
- 模板【洛谷P3811】 【模板】乘法逆元
- [洛谷3811]【模板】乘法逆元
- 拓展欧几里得求乘法逆元(模板)
- 洛谷 P3811 【模板】乘法逆元
- [P3811][模板]乘法逆元
- 洛谷P3811 【模板】乘法逆元(递推)