[NewCoder]最大公约数和最小公倍数

 

import java.util.*;

public class Main{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        
        int m = scan.nextInt();
        int n = scan.nextInt();
        
        int max = Math.max(m,n);
        
        while(true)
        {
            if( (max%m) == 0 && (max%n) == 0)
            {
                break;
            }
            max = max + 1;
        }
        System.out.println(max);
    }
}

greatest common divisor 最大公约数 least common multiple 最小公倍数

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int m = sc.nextInt();
        int n = sc.nextInt();
        
        int gcd = gcd(m , n);
        int lcm = m * n / gcd;
        
        System.out.println(lcm);

    }
    
    public static int gcd(int m, int n)
    {
        if(m % n == 0)
        {
            return n;
        }
        return gcd(n, m%n);
    }
}

最大公约数使用欧几里得算法求得,大致原理为:

如果有两个非负整数p、q,若q==0,则最大公约数为p;否则,p和q的最大公约数就是p除以q所得的余数和q的最大公约数。

最小公倍数原理:

公式:最小公倍数=两整数的乘积÷最大公约数

 

posted @ 2017-03-29 00:41  木子酱要努力  阅读(159)  评论(0编辑  收藏  举报