逆元
模板 理解推导过程加背代码就完事了
#include <stdio.h>
using namespace std;
typedef long long ll;
int a,p,m;
int gcd(int a,int b){
if(!b){
return a;
}
return gcd(b,a%b);
}
int quick_pow(int a,int b,int p){
int res=1;
while(b){
if(b&1)res=(ll)res*a%p;
a=(ll)a*a%p;
b>>=1;
}
return res;
}
int inv(int a,int p){
return quick_pow(a,p-2,p);
}
int main()
{
scanf("%d",&m);
while(m--){
scanf("%d%d",&a,&p);
if(gcd(a,p)==1)printf("%d\n",inv(a,p));
else puts("impossible");
}
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度分析:blablabla
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度分析:blablabla
C++ 代码
blablabla