classMinmaxFact{privatestaticintmaxFact(int a,int b){int min, max;if(a > b){
min = b;
max = a;}else{
min = a;
max = b;}for(int i = min; i >1; i--){if(a % i ==0&& b % i ==0)return i;}return1;}privatestaticintminFact(int a,int b){return a * b /maxFact(a, b);}publicstaticvoidmain(String[] args){int a =33, b =22;
System.out.println(a +"和"+ b +"的最大公约数:"+maxFact(a, b));
System.out.println(a +"和"+ b +"的最小公倍数:"+minFact(a, b));
System.out.println(a +"和"+ b +"的最大公约数:"+maxFact2(a, b));
System.out.println(a +"和"+ b +"的最小公倍数:"+minFact2(a, b));}//辗转相除法privatestaticintmaxFact2(int a,int b){int min, max;if(a > b){
min = b;
max = a;}else{
min = a;
max = b;}while(true){int c = max % min;if(c ==0){return min;}else{
max = min;
min = c;}}}privatestaticintminFact2(int a,int b){return a * b /maxFact2(a, b);}}