【C语言】求最大公约数/最小公倍数

思路:

1.首先求得最大公约数。

   依据最大公约数的概念,从 (小的数字-1) 往下遍历相除,如果两个数都可以整除,则循环停止,输出该数,即为最大公约数。

2.通过最大公约数,得到最小公倍数。

  A B的最大公约数是 C,则A B的最小公倍数为 A*B/ C

 

public class TwoNum {
	public static void main(String[] args) {
		System.out.println(MaxDivisor(14, 7));
		System.out.println(MinMultiple(2, 7));
	}

	private static int MaxDivisor(int a, int b){
		if (a>b){  // a 是小数 b 是大数
			int temp = a+b;
			a = temp-a;
			b = temp-a;
		}

		for (int i = a; i > 1; i--){
			if (a % i == 0 && b % i == 0){
				return i;
			}
		}

		return 1;  
	} 

	private static int MinMultiple(int a,int b){
		return a * b / MaxDivisor(a, b);  
	}
}



 

你可能感兴趣的:(C语言)