更新中\huge{更新中}
(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
上传者