类欧几里得模板
存个类欧几里德模板,想看看原理就看看敦哥(洪华敦)的教程
敦哥无敌
ll inv2=qpow(2,mod-2);
ll sum(ll a,ll b,ll c,ll n){
if(!a) return 0;
ll x,y;
if(a>=c||b>=c){
x=sum(a%c,b%c,c,n);
y=1ll*(a/c)%mod*(n%mod)%mod*(n%mod+1)%mod*inv2%mod+1ll*(n%mod+1)*(b/c)%mod;
y=(y+x)%mod;
return y;
}
ll m=((__int128)a*n+b)/c;
x=sum(c,c-b-1,a,m-1);
y=((__int128)n*m-x)%mod;;
return y;
}
Q.E.D.