求两个数的最大公约数与最小公倍数
最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。在程序中常用辗转相除法、更相减损法和穷举法来求。
最小公倍数,两个或多个整数的公倍数里最小的那一个就是它们的最小公倍数。通常在算出最大公约数后,用最大公约数除两数之积所得之数就是最小公倍数;当然,也可用穷举法求出。
一 求最大公约数
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 }

浙公网安备 33010602011771号