洛谷 P2613 【模板】有理數取餘

題目描述

給出一個有理數c=\frac{a}{b}c=ba,求c\ \bmod 19260817c mod19260817的值。html

輸入輸出格式

輸入格式:

 

一共兩行。ios

第一行,一個整數aa。
第二行,一個整數bb。
spa

 

輸出格式:

 

一個整數,表明求餘後的結果。若是無解,輸出Angry!code

 

輸入輸出樣例

輸入樣例#1: 複製
233
666
輸出樣例#1: 複製
18595654

說明

對於全部數據,0\leq a,b \leq 10^{10001}0a,b1010001htm

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define mod 19260817
using namespace std;
char s[10011];
long long a,b;
long long d0,x0,y0;
long long read(){
    scanf("%s",s);
    int len=strlen(s),num=0;
    for(int i=0;i<len;i++)
        num=(num*10+s[i]-'0')%mod;
    return num;
}
void exgcd(long long a,long long b,long long &d,long long &x,long long &y){
    if(!b){ d=a;x=1;y=0; }
    else{ exgcd(b,a%b,d,y,x);y-=(a/b)*x; }
}
int main(){
    a=read();b=read();
    exgcd(b,mod,d0,x0,y0);
    if(d0!=1){
        puts("Angry!");
        return 0;
    }
    else{
        printf("%lld",a*((x0%mod+mod)%mod)%mod);
        return 0;
    }
}
相關文章
相關標籤/搜索