[模板]乘法逆元
来源:互联网 发布:otsu算法 编辑:程序博客网 时间:2024/05/18 06:21
费马小定理
适用:求某一个数在模意义下的乘法逆元。
如果
code
#include<bits/stdc++.h>using namespace std;int n,p;int power(int x,int k){ int ans=1; while(k) { if(k&1)ans*=x%p; ans%=p; x=x*x%p; k>>=1; } return ans%p;}int main(){ scanf("%d%d",&n,&p); printf("1\n"); for(int i=2;i<=n;i++) printf("%d\n",power(i,p-2)); return 0; }
线性求法
适用:某一区间的所有的数在模意义下的乘法逆元、求单个逆元(递归求解)。
简单地说就是一个递推。
首先我们有:
然后,我们设
再两边同时乘上
移项:
所以:
于是乎我们就可以递推处当前的逆元了: A[i]=-(p/i)*A[p%i]
然后其实吧,我们还可以通过递归求解,在
code:
#include<bits/stdc++.h>#define maxn 3000005using namespace std;int n;long long p;long long ans[maxn];int main(){ scanf("%d%lld",&n,&p); ans[1]=1; for(int i=2;i<=n;i++) ans[i]=(-(p/i)*ans[p%i])%p; for(int i=1;i<=n;i++) printf("%lld\n",ans[i]>0 ? ans[i] : ans[i]+p); return 0; }
阅读全文
0 0
- 乘法逆元模板
- 乘法逆元 模板
- 乘法逆元模板
- [模板]乘法逆元
- 【模板】乘法逆元
- [模板]乘法逆元
- ACM 乘法逆元 模板
- [P3811][模板]乘法逆元
- 洛谷 P3811 【模板】乘法逆元
- 洛谷 P3811 【模板】乘法逆元
- 51nod 1256 乘法逆元 (模板)
- HDU 3037:Saving Beans Lucas模板题+乘法逆元
- Loj-110乘法逆元(线性模板题)
- codeforces 300C 乘法逆元 (乘法逆元模为素数的模板)
- 乘法逆元
- 乘法逆元
- 关于乘法逆元
- 乘法逆元
- 用UML建模开发嵌入式软件
- hihocoder 1038(01背包)
- 事项
- 俏丽的草丛之实习日志一
- 【MongoDB】Aggregation Pipeline——聚合管道
- [模板]乘法逆元
- Java语言程序设计 第13章
- Java常用类与集合总结@2017.11.04-11.05
- NOIP 2010 引水入城 (BFS,DP)
- 泛型和容器二
- Eclipse Ctrl + T in IntelliJ IDEA
- python 时间模块小结(time and datetime)
- C语言:基本数据类型
- CSS中clear:left/right的含义及用法