求取两个正整数的最大公因子
一般我们会采取这样的方法:
1 public int GetGCD(int m, int n) 2 { 3 int temp = m; 4 int gcd = 1; 5 if (m < n) 6 { 7 temp = n; 8 n = m; 9 } 10 for (int i = n; i > 0; i--) 11 { 12 if (temp % i == 0) 13 { 14 gcd = i; 15 break; 16 } 17 } 18 return gcd; 19 }
欧几里德算法:
1 public int euclid(int m, int n) 2 { 3 int r; 4 do 5 { 6 r = m % n; 7 m = n; 8 n = r; 9 } 10 while (r!=0); 11 return m; 12 }
欧几里德算法的原理是:两个正整数的最大公约数等于其中较小数与它们相除得到的余数的最大公约数。
posted on
浙公网安备 33010602011771号