【ZOJ 3609】Modular Inverse
题意
求a关于m的乘法逆元
分析
a x ≡ 1 (mod m) 等价于 ax+my=1
求x的最小正数(不能是0,我就WA在这里了)。
gcd(a,m)!=1 时x不存在。
所以用扩展gcd就可以求了。
代码
#include<cstdio> #define ll long long ll exgcd(ll a,ll b,ll &x,ll &y) { if(b==0) { x=1; y=0; return a; } ll r=exgcd(b,a%b,y,x); y-=a/b*x; return r; } int main() { ll t,a,m,x,y; scanf("%lld",&t); while(t--) { scanf("%lld%lld",&a,&m); int ok=exgcd(a,m,x,y); if(ok==1) { x=(x%m+m)%m; if(x==0)x=m; printf("%lld\n",x); } else { printf("Not Exist\n"); } } return 0; }
┆凉┆暖┆降┆等┆幸┆我┆我┆里┆将┆ ┆可┆有┆谦┆戮┆那┆ ┆大┆始┆ ┆然┆
┆薄┆一┆临┆你┆的┆还┆没┆ ┆来┆ ┆是┆来┆逊┆没┆些┆ ┆雁┆终┆ ┆而┆
┆ ┆暖┆ ┆如┆地┆站┆有┆ ┆也┆ ┆我┆ ┆的┆有┆精┆ ┆也┆没┆ ┆你┆
┆ ┆这┆ ┆试┆方┆在┆逃┆ ┆会┆ ┆在┆ ┆清┆来┆准┆ ┆没┆有┆ ┆没┆
┆ ┆生┆ ┆探┆ ┆最┆避┆ ┆在┆ ┆这┆ ┆晨┆ ┆的┆ ┆有┆来┆ ┆有┆
┆ ┆之┆ ┆般┆ ┆不┆ ┆ ┆这┆ ┆里┆ ┆没┆ ┆杀┆ ┆来┆ ┆ ┆来┆