方法1:自己思考的笨方法,太长太乱了。
通过得到相同的质因数,提取出来就是他们的最大公约数了
import java.util.ArrayList;
/**
* @author cherhio
* @date Created in 2019-05-05 13:55
*
* 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
*/
public class solution1 {
public static void main(String[] args) {
/* MaxAndMin(60,12);*/
int digui = new solution1().digui(30, 20);
}
private static void MaxAndMin(int x,int y){
/*
如果x,y都是质数,最小公倍数为积,最大公约数=两数之积/最小公倍数
分解公因式:
20=2*2*5
12=2*2*3
最大公约数是 2 * 2 = 4,最小公倍数是 20 * 12 / 4 = 60
再来一个, x=30,y=20;
30=2*3*5
20=2*2*5
相同的数字是2跟5,2 * 5 =10,最大公约数是10,最小公倍数是30 * 20 / 10 = 60;
如何得到他们的相同的数字?
遍历一个集合,判断另外一个集合是否包含该数字,包含的话,放入第三个集合。
遍历第三个集合得出的乘积就是最小公倍数.