输入两个正整数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;
}
}
运行结果: