1. 程式人生 > >最大公約數 最小公倍數

最大公約數 最小公倍數

//if a < b, it can swap their position.
int gcd(int a, int b){
    a = abs(a);  b = abs(b);
    while(b != 0){
        int t = a%b;
        a = b;
        b = t;
    }
    return a;
}
int gcd(int a, int b){
  return (b==0) ? a : gcd(b,a%b);
}
//a * b = gcd(a,b) * lcm(a,b)
//divide before multiply avoid overflow,
int lcm(int a, int b){ return a / gcd(a,b) * b; }