.net求两个数的最大公约数和最小公倍数
最大公约数:指两个或多个整数共有约束中最大的一个。
最小公倍数:如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。
1 /// <summary> 2 /// 最大公约数 3 /// </summary> 4 /// <param name="a"></param> 5 /// <param name="b"></param> 6 /// <returns></returns> 7 public static int GCD(int a, int b) 8 { 9 int gcd = 1; 10 int min = a > b ? b : a; 11 for (int i = min; i >= 1; i--) 12 { 13 if (a % i == 0 && b % i == 0) 14 { 15 gcd = i; 16 break; 17 } 18 } 19 return gcd; 20 } 21 22 /// <summary> 23 /// 最小公倍数 24 /// </summary> 25 /// <param name="a"></param> 26 /// <param name="b"></param> 27 /// <returns></returns> 28 public static int LCM(int a, int b) 29 { 30 int lcm = a * b; 31 int max = a > b ? a : b; 32 for (int i = max, len = a * b; i <= len; i++) 33 { 34 if (i % a == 0 && i % b == 0) 35 { 36 lcm = i; 37 break; 38 } 39 } 40 return lcm; 41 }