每次需要用到的时候总是会忘记怎么求最大公约数,这次写在博客上,天天看,背都要把它背下来。
高效简洁的辗转相除法:
int gdc(int a,int b) { if(b == 0) return a; return gdc(b,a%b); } ///(36,20)-(20,16)-(16,4)-(4,0)-(0,4) ///(20,36)-(36,20)-(20,16)-(16,4)-(4,0)-(0,4)
简单低效的辗转相减法:
int gcd(int a,int b) { while(a!=b) { if(a>b) a=a-b; else b=b-a; } return a; }
最小公倍数(LCM)=两数之积/最大公约数