有理数取余

有理数取余

#include<bits/stdc++.h>
#define il inline
#define ri register int
#define ru register unsigned int
#define int long long
using namespace std;
const int MOD=19260817;
il int read()
{
    int as=0;char ch=getchar();
    while(ch<'0'||ch>'9') ch=getchar();
    while(ch>='0'&&ch<='9') as=(as<<3)+(as<<1)+(ch^48),as%=MOD,ch=getchar();
    return as%MOD;
}
il int exgcd(int a,int b,int &x,int &y)
{
    if(b==0) return x=1,y=0,a;
    int g=exgcd(b,a%b,y,x);y-=a/b*x;return g;
}
int a,b,x,y;
signed main()
{
    a=read(),b=read();
    if(!b) return printf("Angry!"),0;
    int tmp=exgcd(b,MOD,x,y);
    if(a%tmp!=0) printf("Angry!");
    else  printf("%lld",(a*x%MOD+MOD)%MOD);
    return 0;
} 
 

  

posted @ 2022-09-23 21:02  Bertidurlah  阅读(23)  评论(1)    收藏  举报