逆元•若a*b=1(modm)则称作b是a在模m下的逆元。记作a^-1=b(mod
m)•显然只有(a,m)=1时存在逆元。•性质: a^-1=b(mod m)时•b^-1=a(mod m)•a*b=1(mod m)•a^-1=b+km(mod m)•m/a=m*b(mod m)
求逆元
•1.a*x+b*y=1;解方程得x为a在mod
b下的逆元。(要求gcd(a,b)=1)(exgcd方法) #include
#include
using namespace std;
int x,y,d,a,b;//a*x + b*y=GCD(a,b)
//d为答案
void exgcd(int a, int b, int &d, int &x, int &y)
{
if(!b){d=a;x=1;y=0;}
else {exgcd(b, a%b, d, y, x); y-=x*(a/b);}
}
int main()
{
scanf("%d%d",&a,&b);
exgcd(a,b,d,x,y);
printf("x=%d y=%d d=%d
",x,y,d);
return 0;
}