首页 > 代码库 > Java最大公约数 最小公倍数

Java最大公约数 最小公倍数

/**
 * CommonDiviser.java
 * @author:王超
 * 2017年3月15日
 * wangChaoPA实习工作练习.com.最大公约数和最小公倍数.CommonDiviser
 * Copyright (c) 2007, 2016 Infopower corporation All Rights Reserved.
 */
package wangChaoPA实习工作练习.com.最大公约数和最小公倍数;

import java.util.Scanner;

/**
 * o
 *
 *
 * <p>
 * 输入两个正整数m和n,求其最大的公约数和最小公倍数
 * </p>
 *
 * @author 王超
 * @since 1.0
 * @date 2017年3月16日 下午11:08:18
 * @see 新建|修改|放弃
 * @see wangChaoPA实习工作练习.com.最大公约数和最小公倍数.CommonDiviser 解题思路:辗转相除法,若n>m 1:若n%m ==
 *      0 则m为最大公约数 否则 n%m=k n=m,m=k 重复步骤1直到余数为0 最大公倍数=n*m/最大公约数
 */
public class CommonDiviser
{
    private static Scanner input = new Scanner(System.in);

    public static void main(String[] args)
    {
        int n = input.nextInt();
        int m = input.nextInt();
        int zdgys = result(n, m);
        System.out.println("最大公约数是:" + zdgys);
        System.out.println("最大公倍数是:" + n * m / zdgys);
        input.close();
    }

    public static int result(int n, int m)
    {
        // 余数
        int k = 0;
        // 使n>m
        if (n < m)
        {
            int t = 0;
            t = n;
            n = m;
            m = t;
        }
        // 直到余数为0
        while (m != 0)
        {
            k = n % m;
            n = m;
            m = k;
        }
        System.out.println(n);
        return n;
    }
}

Java最大公约数 最小公倍数