码迷,mamicode.com
首页 > 其他好文 > 详细

hdu1576 A/B 数论

时间:2017-07-15 11:22:34      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:nbsp   code   using   扩展   char   line   while   std   print   

hdu1576 A/B
逆元 扩展欧几里得
数论

 

 

 1 #include <bits/stdc++.h>
 2 using namespace std ; 
 3  
 4 const int mod = 9973 ; 
 5 int T,n,A,B,inv,x,y,t ; 
 6 
 7 inline int read() 
 8 {
 9     int x = 0 , f = 1 ; 
10     char ch = getchar() ; 
11     while(ch<0||ch>9) { if(ch==-) f = -1 ; ch = getchar() ; } 
12     while(ch>=0&&ch<=9) { x = x * 10+ch-48 ; ch = getchar() ; } 
13     return x * f ; 
14 }
15 
16 inline int gcd(int a,int b) 
17 {
18     if(!b) {
19         x = 1 ,y = 0 ; 
20         return a ; 
21     }
22     int tmp = gcd(b,a%b) ; 
23     t = x ; 
24     x = y ; 
25     y = t - a/b*y ; 
26     return tmp ; 
27 }
28 
29 int main() 
30 {
31     T = read() ;  
32     while(T--) 
33     {
34         A = read() ; B = read() ; 
35         gcd(B,mod) ; 
36         x = ( x%mod + mod )%mod ;     //  其实每次 加的是 mod /gcd(B,mod)   但是 因为 两者互质  
37         printf("%d\n",A*x%mod) ; 
38     }
39     return 0 ; 
40 }

 

hdu1576 A/B 数论

标签:nbsp   code   using   扩展   char   line   while   std   print   

原文地址:http://www.cnblogs.com/third2333/p/7181803.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!