Algorithm: 最大公约数 最小公倍数
1 // Swap 2 void Swap(int* a, int* b) 3 { 4 int tmp = *a; 5 *a = *b; 6 *b = tmp; 7 } 8 9 // GCD: Greatest Common Divisor 10 int GCD(int i, int j) 11 { 12 if(i < 0 || j < 0) 13 return 0; 14 15 if(i < j) 16 Swap(&i, &j); // Make sure i > j. 17 18 if(j == 0) return i; 19 20 return GCD(j, i % j); 21 } 22 23 // LCM: Lowest Common Multiple 24 int LCM(int i, int j) 25 { 26 if(i < 0 || j < 0) 27 return 0; 28 29 return (i * j / GCD(i, j)); 30 }