题面:https://www.luogu.org/problemnew/show/P2613
分析题目,发现c可以转化为ab1,即本题就是求b在mod p的意义下的逆元。特别的,当gcd(a,p)≠1gcd(a,p)≠1,方程无解,因此a也无逆元。
Code:
#include<cstdio> #include<cstring> #include<iostream> using namespace std; typedef long long LL; #define int LL #define Mod 19260817 char st[10005]; int read() { scanf("%s",st); int len=strlen(st),num=0; for (int i=0;i<len;i++) num=(num*10+st[i]-'0')%Mod; return num; } int d,x,y; void exgcd(int a,int b,int &d,int &x,int &y) { if (b==0) { d=a;x=1;y=0; return; } exgcd(b,a%b,d,y,x); y-=a/b*x; } signed main() { int a,b; a=read();b=read(); exgcd(b,Mod,d,x,y); if (d!=1) printf("Angry!"); else { cout<<a*((x%Mod+Mod)%Mod)%Mod; } return 0; }