求取两个正整数的最大公因子

      一般我们会采取这样的方法:       

 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     }
View Code

     欧几里德算法:    

 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         }
View Code

    欧几里德算法的原理是:两个正整数的最大公约数等于其中较小数与它们相除得到的余数的最大公约数。

 posted on 2014-04-21 20:31  会飞的金鱼  阅读(147)  评论(0)    收藏  举报