1.分解质因数
2.质因数分解法、辗转相除法求两个数的最大公约数
3.质因数分解法、辗转相除法求n个数的最大公约数
完整的Java代码如下:
package algorithm;
import java.util.ArrayList;
public class GreatestCommonDivisor {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
GreatestCommonDivisor gcd = new GreatestCommonDivisor();
int i = 6;
int j = 66;
gcd.prime(i);// 分解质因数
gcd.prime(j);// 分解质因数
gcd.GCD_prime(i, j);// 质因数分解法
gcd.GCD_successive1(i, j);// 辗转相除法,递归算法
gcd.GCD_successive2(i, j);// 辗转相除法,循环算法
int[] num = { 24, 36, 48, 66};
gcd.gcd_n(num);// //递归调用求两个数的最大公约数的方法来求n个数的最大公约数
}
/*
* 求n个数的最大公约数
*/
public int gcd_n(int[] num) {
int gcd = num[0];
System.out.println("num[0]:" + gcd);