hdu1576A/B

解题思路:求乘法逆元就好了。

 1 //Accepted    228 KB    0 ms
2 #include <cstdio>
3 #include <cstring>
4 const int pp = 9973;
5 int extend_euclid(int a,int b,int &x,int &y)
6 {
7 if (b==0)
8 {
9 x=1;
10 y=0;
11 return a;
12 }
13 int d=extend_euclid(b,a%b,x,y);
14 int t=x;
15 x=y;
16 y=t-a/b*y;
17 return d;
18 }
19 int A,B;
20 int a,b,x,y;
21 void slove()
22 {
23 a=B;
24 b=pp;
25 extend_euclid(a,b,x,y);
26 x=(x%b+b)%b;
27 int ans=A*x%pp;
28 printf("%d\n",ans);
29 }
30 int main()
31 {
32 int T;
33 scanf("%d",&T);
34 while (T--)
35 {
36 scanf("%d%d",&A,&B);
37 slove();
38 }
39 return 0;
40 }

时间: 2024-08-03 15:40:53

hdu1576A/B的相关文章

hdu1576-A/B-(同余定理+乘法逆元+费马小定理+快速幂)

A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10383    Accepted Submission(s): 8302 Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1). Input 数据的第一行是一个