【模板】有理数取余
题目分析
设
需要求
根据余数的可乘性,题目变为
瓶颈在于求
我们假设这个数是
根据余数的可乘性,
根据费马小定理,当
变形之后就是
所以上面的最原始的同余方程得到
这样这个题也就迎刃而解了。
代码实现
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int mod=19260817;
int a,b;
int qp(int a,int b){
int ret=1;
a%=mod;
while(b){
if(b&1)
ret*=a,ret%=mod;
a*=a,a%=mod,b>>=1;
}
return ret;
}
void read(int&a){
a=0;
char c;
while((c=getchar())<'0'||c>'9');
while(c>='0'&&c<='9'){
a=a*10%mod+(c-48),a%=mod,c=getchar();
}
return;
}
signed main(){
read(a),read(b);
cout<<(a%mod*qp(b,mod-2))%mod;
return 0;
}