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)。
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。
Output
对应每组数据输出(A/B)%9973。
Sample Input
2 1000 53 87 123456789
Sample Output
7922 6060解答:/*n=A%9973 就有 n=A-9973*r A%B==0 A=l*B (A/B)%9973 ans= l%9973 所以有 ans=l-m*9973 其中ans就是我们需要的答案 A=L*B=n+9973*r=B*(ans+m*9973) n+9973*r=B*ans+9973*m*B n-B*ans=(m*B-r)*9973 所以只要枚举(n-B*ans)%9973==0 就可以了*/ #include<stdio.h> int main() { int t,i; __int64 n,b; while(scanf("%d",&t)!=EOF) { while(t--) { scanf("%I64d%I64d",&n,&b); for(i=0;i<=9972;i++) { if((n-b*i)%9973==0) break; } printf("%d\n",i); } } return 0; }