# Problem Description
要求$(A/B)$%$9973$,但由于A很大,我们只给出$n(n=A$%$9973)$(我们给定的$A$必能被$B$整除,且$gcd(B,9973) = 1)$。
## Input
数据的第一行是一个 $T$,表示有 $T$ 组数据。
每组数据有两个数$n(0 <= n < 9973)$和$B(1 <= B <= 10^{9})$。
## Output
对应每组数据输出$(A/B)$%$9973$。
### Sample Input
2
1000 53
87 123456789
### Sample Output
>7922
6060
思路:
由题可列出:
$\left\{ \begin{array}{c} A=K*9973+n \\
A/B=C \\
C=P*9733+x\end{array}\right.$
即 $x$ 为我们所要的答案,联立方程组可得
$K*9973=B*P*9973+B*x-n$;
即 $(B*X-n)$%$9973==0$;
由于A的数据太大所以需要进行模运算,否则会超出 $int$ 的范围
模运算:
$\left\{ \begin{array}{c} (a+b)\% c==(a\% c+b\% c)\% c \\ \\
(a-b)\%c==(a\%c-b\%c)\%c;
\\\\
(a*b)\%c==(a\%c*b\%c)\%c;\end{array}\right.$
具体运行看代码ヾ(≧O≦)〃嗷~:
#define N 9973 #include<iostream> using namespace std; int main() { int t; cin>>t; while(t--) { int n,b; cin>>n>>b; int i; for(i=0;i<N;i++) { if((((b%N)*i)%N-n)%N==0) break; } cout<<i<<endl; } return 0; }
==**实践是检验真理的唯一标准**==