- Grid 2
逆元
- 2025-2-26 15:02:59 @
(a+b)%c=(a%c+b%c)%c
(a* b)%c=(a%c*(b%c))%c
那么是否有a/b%c=a%c/(b%c)??
易知没有
7/2%5=3
7*(2^-1^)%5=3
因此7/2可以视为7*一个数,这个数就是7关于5的逆元
欧几里得算法
#include<bits/stdc++.h>
using namespace std;
int a,p;
void Exgcd(int a,int b,int &x,int &y) {
if (!b) x = 1, y = 0;
else Exgcd(b,a%b,y,x),y-=a/b*x;
}
int main() {
cin>>a>>p;
int x, y;
Exgcd(a,p,x,y);
x=(x%p+p)%p;
cout<<x;
}
0 条评论
目前还没有评论...
信息
- ID
- 2268
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 27
- 已通过
- 2
- 上传者