A/B≡x mod 9973
要我们求出这个x
转换式子就是 A/B=x+9973*k
A/B=x+9973*k
因为B整除A,所以A=B*X+9973*k*B
取模得到 A-B*x≡0 mod 9973 => n-B*x≡0
x显然在0-9972,遍历一下就能找到最小的x了
题目代码
#include<iostream> #include<stdio.h> #include<string.h> #include<vector> using namespace std; const int maxn=1e8+100; typedef long long LL; int t,n; LL b; int main(){ scanf("%d",&t); while(t--){ scanf("%d%lld",&n,&b); int x; for(x=0;x<9973;x++){ LL t=b*x-n; if(t%9973==0)break; } printf("%d\n",x); } return 0; }
来源:https://www.cnblogs.com/helman/p/11352437.html