Description
Requirements (A/b)%9973, but because a is large, we only give N (n=a%9973) (we given a must be divisible by B, and gcd (b,9973) = 1).
Input
The first line of data is a T, which indicates that there is a T group of data.
Each group of data has two numbers n (0 <= N < 9973) and B (1 <= b <= 10^9).
Output
Corresponds to each set of data output (A/b)%9973.
Sample Input
2
1000 53
87 123456789
Sample Output
7922
6060
Although the positive solution is to expand Euclidean algorithm, but for me to wait for the number theory slag, this method is still too difficult to think of, so the second came up with a posture, enumeration: I, A=b*i, when (a-n)%9973=0, I is a (A/b)%9973 value. The range of I is 0-9972
#include <iostream>#include <stdio.h>#include <queue>#include <stack>#include <algorithm>#include <string.h>#include <string>#include <math.h>#define LL Long LongintMain () {intTscanf("%d", &t); while(t--) {LL n,m;scanf("%lld%lld", &n,&m);intI for(i=0;i<9973; i++) {if((m*i-n)%9973==0) Break; }printf("%d\n", i); }return 0;}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Hdu 1576 A/b