HDU 2504 又见GCD【递归】
2014-07-25 00:57
295 查看
原题链接。
今天发现一个更好的方法,运用欧几里得算法,递归来求最大公约数。
可当做模板来记。
AC码1:直接求c
AC码2:求c的另一个因子
今天发现一个更好的方法,运用欧几里得算法,递归来求最大公约数。
可当做模板来记。
AC码1:直接求c
#include<cstdio> int gcd(int a,int b) //欧几里德算法 辗转相除法 { return b?gcd(b,a%b):a; } int main() { int n,a,b,c; scanf("%d",&n); while(n--) { scanf("%d%d",&a,&b); for(c=b<<1; ;c+=b) //b<<1 相当于b*2 不过前者更快 if(gcd(a,c)==b) break; printf("%d\n",c); } return 0; }
AC码2:求c的另一个因子
#include<stdio.h> int gcd(int a,int b) { return b?gcd(b,a%b):a; } int main() { int a,b,i,j,t,d,n; scanf("%d",&n); while(n--) { scanf("%d%d",&a,&b); d = a/b; //取a除以b的另一个因子 for(i=2;;i++) if(gcd(d,i)==1) //a和c 除 b 外的两个因子必互斥 (即二者gcd等于1) c必为b的整数倍 break; printf("%d\n",i*b); } return 0; }
相关文章推荐
- HDU 2504 又见GCD
- hdu 2504 又见GCD (水)
- 又见GCD (HDU 2504)
- HDU 2504 又见GCD
- hdu2504又见GCD
- HDU 2504 又见GCD(水)
- hdu 2504 又见gcd(gcd)
- hdu 2504 又见GCD
- 杭电ACM 2503 a/b + c/d&&&&杭电ACM 2504又见GCD--(递归运用)----20140725
- HDU--IMNU集训四:Lowest Common Multiple Plus n个数的最大公约数 递归啊GCD啊之类的
- hdu2504 又见GCD
- hdu 2504 又见GCD
- hdu-2504-又见GCD
- hdu-2504-又见GCD
- Hdu 2504 又见GCD【基础数论】
- hdu 2504 又见GCD (水)
- HDU 2504 又见GCD
- HDU 2504 又见GCD
- HDU-2504 又见GCD
- HDU 2504 又见GCD