【算法005】最大公约数和最小公倍数

输入两个正整数m和n,求其最大公约数和最小公倍数。

程序分析:在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。

几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。例如:12、16的公约数有1、2、4,其中最大的一个是4,4是12与16的最大公约数,一般记为(12,16)=4。12、15、18的最大公约数是3,记为(12,15,18)=3

几个自然数公有的倍数,叫做这几个数的公倍数,其中最小的一个自然数,叫做这几个数的最小公倍数。例如:4的倍数有4、8、12、16,……,6的倍数有6、12、18、24,……,4和6的公倍数有12、24,……,其中最小的是12,一般记为[4,6]=12。12、15、18的最小公倍数是180。记为[12,15,18]=180。 

package com.example.chyer.demo;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt();
        int b = input.nextInt();
        Test test = new Test();
        int i = test.gongyinshu(a, b);
        System.out.println("最大公约数" + i);
        System.out.println("最小公倍数" + a * b / i);
    }

    public int gongyinshu(int a, int b) {
        if (a < b) {
            int t = b;
            b = a;
            a = t;
        }
        while (b != 0) {
            if (a == b) {
                return a;
            }
            int x = b;
            b = a % b;
            a = x;
        }
        return a;
    }
}

运行结果:

发布了29 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/chyercn/article/details/103230187