P2613 【模板】有理数取余

P2613 【模板】有理数取余

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int p = 19260817;
 5 inline ll read() {
 6     ll res = 0;
 7     char ch = getchar();
 8     while(!isdigit(ch) and ch != EOF)
 9         ch = getchar();
10     while(isdigit(ch)) {
11         res = (res << 3) + (res << 1) + (ch - '0');
12         res %= p;
13         ch = getchar();
14     }
15     return res;
16 }
17 void exgcd(ll a, ll b, ll &x, ll &y) {
18     if (b == 0) x = 1, y = 0;
19     else exgcd(b, a%b, y, x), y -= a/b * x;
20 }
21 int main() {
22     ll a = read(), b = read();
23     if (b == 0) {
24         puts("Angry!");
25         return 0;
26     }
27     ll x, y;
28     exgcd(b,p,x,y);
29     if (x < 0) x += p;
30     printf("%lld\n",x*a%p);
31     return 0;
32 }

 

posted @ 2019-11-02 19:10  麻辣猪仔  阅读(175)  评论(0编辑  收藏  举报