【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);
}
}
还没有评论,来说两句吧...