逆元(費馬小定理求法)
阿新 • • 發佈:2018-12-24
看程式碼解釋
/* 求逆元 費馬小定理 a^(p-1)=1(mod p) 故 a^(p-2)=1/a(mod p) inv(a)(a關於p的逆元)=a^(p-2) */ #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<string> #include<iostream> #include<cstdlib> #define N 1010 #define INF 0x3f3f3f3f #define WC 1e-6 typedef long long LL; using namespace std; LL ksm(LL a,LL b,LL MOD) { LL ans=1; while(b) { if(b&1) ans=(ans*a)%MOD; a=(a*a)%MOD; b/=2; } return ans; } LL inv(LL a,LL p) { return ksm(a,p-2,p); } int main() { LL n,p; while(~scanf("%lld %lld",&n,&p)) { printf("inv( %lld )of %lld=%lld\n",n,p,inv(n,p)); } }