首页 > 代码库 > hdu1576 A/B 数论
hdu1576 A/B 数论
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 数论
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。