题目大意
求a关于b的乘法逆元;
题目分析
递归什么的方法可能因为是因为栈溢出完全过不了,只能用扩欧来做;(说实话我一直分不清欧拉和欧几里得这两个人。。。)
Code
#include<iostream>
#include<cstdio>
using namespace std;
int a,p;
void exgcd(int a,int b,int &x,int &y){
if(b==0){x=1;y=0;return;}
exgcd(b,a%b,y,x);y-=a/b*x;
}
int inv(int a){
int x,y;exgcd(a,p,x,y);
x=x%p;return x+(x<=0?p:0);
}
int main(){
scanf("%d%d",&a,&p);
printf("%d",inv(a));
return 0;
}