求两个数的最大公约数与最小公倍数

  最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。在程序中常用辗转相除法、更相减损法和穷举法来求。

 最小公倍数,两个或多个整数的公倍数里最小的那一个就是它们的最小公倍数。通常在算出最大公约数后,用最大公约数除两数之积所得之数就是最小公倍数;当然,也可用穷举法求出。

一 求最大公约数

1 辗转相除法

 

1 int divisionAlgorithm(int num1,int num2){
2   int mod;
3   while (num2 != 0) {
4    mod = num1 % num2;
5    num1 = num2;
6    num2 = mod;
7   }
8   return num1;
9  }

 

 2 更相减损法

 

 1 int decreasesAlgorithm(int num1,int num2){
 2   while (num1 != num2) {
 3    if (num1 > num2) {
 4     num1 -= num2;
 5    } else {
 6     num2 -= num1;
 7    }
 8   }
 9   return num1;
10  }

 

 3 穷举法

 

1 int exhaustionAlgorithm(int num1, int num2) {
2         int mod;
3         mod = num2;
4         while (num1 % mod != 0 || num2 % mod != 0) {
5             mod--;
6         }
7         return mod;
8     }

 

 

 

 二 求最小公倍数

 

 1 int commonFactor(int num1,int num2){
 2         int factor=num1;
 3         while(true){
 4             if(factor%num1==0 && factor%num2==0){
 5                 break;
 6             }
 7             factor++;
 8         }
 9         return factor;
10     }

 

posted @ 2016-03-19 17:53  toaday  阅读(586)  评论(0)    收藏  举报