HDU 1576 A/B(欧几里得扩展)
也知道应该是用扩展欧几里得做,而且是裸模版题,无奈方程一直想错,想了30分钟后,放弃去搞更坑爹的连连看。。。
1 #include <stdio.h> 2 #include <string.h> 3 int x,y; 4 int ext_eulid(int a,int b) 5 { 6 int t,d; 7 if(b == 0) 8 { 9 x = 1; 10 y = 0; 11 return a; 12 } 13 d = ext_eulid(b,a%b); 14 t = x; 15 x = y; 16 y = t - (a/b)*y; 17 return d; 18 } 19 int main() 20 { 21 int t,n,b,i; 22 scanf("%d",&t); 23 while(t--) 24 { 25 scanf("%d%d",&n,&b); 26 i = ext_eulid(b,9973); 27 i = (x*(n/i)%9973+9973)%9973; 28 printf("%d\n",i); 29 } 30 return 0; 31 }