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
1795

被折叠的 条评论
为什么被折叠?



