求两个数的最大公约数
//a b 大小并不重要,求余会调整顺序
public static int gcd(int a,int b) {
if(b!=0) {
return gcd(b,a%b);
}
return a;
}
求n个数的最大公约数
两个两个求
eg.前两个求出的最大公因数与第三个数求最大公因数
public static int ngcd(int a[],int size){
if(size != 1){
return gcd(a[size-1],ngcd(a,size-1));
}
return a[size-1];
}
求两个数最小公倍数
求出两个数的最大公因数num后,最小公倍数 =(a×b)/num
public static int lcm(int a,int b){
return a*b/gcd(a,b);
}
求n个数的最小公倍数
两个两个求
eg.前两个求出的最小公倍数与第三个数求最小公倍数
public static int nlcm(int a[],int size) {
if (size != 1) {
return lcm(a[size-1],nlcm(a, size-1));
}
return a[size-1];
}