class MinmaxFact {
private static int maxFact(int a, int b) {
int min, max;
if (a > b) {
min = b;
max = a;
} else {
min = a;
max = b;
}
for (int i = min; i > 1; i--) {
if (a % i == 0 && b % i == 0)
return i;
}
return 1;
}
private static int minFact(int a, int b) {
return a * b / maxFact(a, b);
}
public static void main(String[] args) {
int a = 33, b = 22;
System.out.println(a + "和" + b + "的最大公约数:" + maxFact(a, b));
System.out.println(a + "和" + b + "的最小公倍数:" + minFact(a, b));
System.out.println(a + "和" + b + "的最大公约数:" + maxFact2(a, b));
System.out.println(a + "和" + b + "的最小公倍数:" + minFact2(a, b));
}
//辗转相除法
private static int maxFact2(int a, int b) {
int min, max;
if (a > b) {
min = b;
max = a;
} else {
min = a;
max = b;
}
while (true) {
int c = max % min;
if (c == 0) {
return min;
} else {
max = min;
min = c;
}
}
}
private static int minFact2(int a, int b) {
return a * b / maxFact2(a, b);
}
}
辗转相除法求最小公倍数和最大公约数
最新推荐文章于 2023-10-31 09:19:29 发布