最大公约数,最小公倍数

1.

 

/*
	 * 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
	 * 1.如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,
	 * 叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。
	 * 2.辗转相除法是古希腊求两个正整数的最大公约数的,也叫欧几里德算法,其方法是用较大的数除以较小的数,
	 * 上面较小的除数和得出的余数构成新的一对数,继续做上面的除法,直到出现能够整除的两个数,其中较小的数(即除数)就是最大公约数。
	 * 3.最小公倍数为两数相乘再除以最大公约数
	 */
	public static void print40(int m, int n) {

		if (m > 0 && n > 0 && m >= n) {
			System.out.print(m + "和" + n + "最大公约数为");
			int mul = m * n;
			int k = 1;
			while (n > 0) {
				if (m % n == 0) {
					k = n;
					break;
				} else {
					int temp = n;
					n = m % n;
					m = temp;
				}
			}
			System.out.println(k + "最小公倍数为" + (mul / k));
		}
	}

	public static void main(String[] args) {
		T2.print40(10, 8);
		T2.print40(15, 8);
		T2.print40(27, 18);
		T2.print40(288, 123);
	}

 输出:

 

10和8最大公约数为2最小公倍数为40
15和8最大公约数为1最小公倍数为120
27和18最大公约数为9最小公倍数为54
288和123最大公约数为3最小公倍数为11808

 

你可能感兴趣的:(最大公约数,最小公倍数)