【C语言】求最大公约数/最小公倍数

左手的ㄟ右手 2022-09-18 07:52 376阅读 0赞

思路:

1.首先求得最大公约数。

依据最大公约数的概念,从 (小的数字-1) 往下遍历相除,如果两个数都可以整除,则循环停止,输出该数,即为最大公约数。

2.通过最大公约数,得到最小公倍数。

A B的最大公约数是 C,则A B的最小公倍数为 A*B/ C

  1. public class TwoNum {
  2. public static void main(String[] args) {
  3. System.out.println(MaxDivisor(14, 7));
  4. System.out.println(MinMultiple(2, 7));
  5. }
  6. private static int MaxDivisor(int a, int b){
  7. if (a>b){ // a 是小数 b 是大数
  8. int temp = a+b;
  9. a = temp-a;
  10. b = temp-a;
  11. }
  12. for (int i = a; i > 1; i--){
  13. if (a % i == 0 && b % i == 0){
  14. return i;
  15. }
  16. }
  17. return 1;
  18. }
  19. private static int MinMultiple(int a,int b){
  20. return a * b / MaxDivisor(a, b);
  21. }
  22. }

发表评论

表情:
评论列表 (有 0 条评论,376人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C语言公倍数公约数

    求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数 求最大公约数算法:有两整数a和b:① a%b得余数c② 若c=0,则b即为两数的最大公约数③ 若c≠0,则a=b,b=