洛谷 P2613 【模板】有理数取余
题目描述
给出一个有理数c=\frac{a}{b}c=ba,求c\ \bmod 19260817c mod19260817的值。
输入输出格式
输入格式:
一共两行。
第一行,一个整数aa。
第二行,一个整数bb。
输出格式:
一个整数,代表求余后的结果。如果无解,输出Angry!
输入输出样例
说明
对于所有数据,0\leq a,b \leq 10^{10001}0≤a,b≤1010001
#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; } }
细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。
雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。