标签:
设A/B=x,则A=Bx
n=A%9973=A-9973*y=Bx-9973*y
用扩展欧几里德求解
#include<stdio.h> #include<string.h> typedef long long ll; ll ex_gcd(ll a,ll b,ll &x,ll &y){ if(!b){ x=1,y=0; return a; } ll ans=ex_gcd(b,a%b,y,x); y-=a/b*x; return ans; } void cal(ll a,ll b,ll c){ ll x,y; ll d=ex_gcd(a,b,x,y); x=((x*c)%b+b)%b; printf("%I64d\n",x); } int main(){ int t; ll a,c; scanf("%d",&t); while(t--){ scanf("%I64d%I64d",&c,&a); cal(a,9973,c); } return 0; }
标签:
原文地址:http://www.cnblogs.com/L-King/p/5720739.html