1. 程式人生 > >求最大公約數和最小公倍數(java語言)

求最大公約數和最小公倍數(java語言)

package com.sun.maxCommonDivisorAndminCommonMultiple;

/**
 * 
 * @author:孫創
 * @date:2017年4月10日
 * @Discription://求最大公約數和最小公倍數
 */
public class MaxCommonDivisorAndMinCommonMultiple2 {
	public static void main(String[] args) {
		int maxCommonDivisor = MaxCommonDivisor(12, 8);
		System.out.println(maxCommonDivisor);
		int minCommonMultiple = MinCommonMultiple(8, 12);
		System.out.println(minCommonMultiple);
	}

	// 最大公約數:遞迴法
	public static int MaxCommonDivisor(int m, int n) {
		if (m < n) {
			int temp = m;
			m = n;
			n = temp;
		}
		if (m % n == 0) {
			return n;
		}
		return MaxCommonDivisor(n, m % n);
	}

	// 最大公約數:迴圈法求
	public static int MaxCommonDivisor2(int m, int n) {
		if (m < n) {
			int temp = m;
			m = n;
			n = temp;
		}
		while (m % n != 0) {
			int temp = m % n;
			m = n;
			n = temp;
		}
		return n;
	}

	// 最小公倍數
	public static int MinCommonMultiple(int m, int n) {
		return m * n / MaxCommonDivisor(m, n);
	}
}