HDU 2053a/b + c/d 2054 又见gcd
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2503
View Code
1 #include<stdio.h> 2 #include<string.h> 3 __int64 gcd(__int64 a,__int64 b) 4 { 5 return b==0?a:gcd(b,a%b); 6 } 7 int main() 8 { 9 __int64 n,a,b,c,d,t,k,m; 10 scanf("%I64d",&n); 11 while(n--) 12 { 13 scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&d); 14 t=a*d+b*c; 15 m=b*d; 16 k=gcd(t,m); 17 printf("%I64d %I64d\n",t/k,m/k); 18 } 19 return 0; 20 }
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2504
View Code
1 #include<stdio.h> 2 __int64 gcd(__int64 a,__int64 b) 3 { 4 return b==0?a:gcd(b,a%b); 5 } 6 int main() 7 { 8 __int64 n,a,b,c; 9 scanf("%d",&n); 10 while(n--) 11 { 12 scanf("%I64d%I64d",&a,&b); 13 for(c=b+1;;c++) 14 { 15 if(b==gcd(a,c)) 16 break; 17 } 18 printf("%I64d\n",c); 19 } 20 return 0; 21 }