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 Divisor10 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 Multiple24 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 }