编程练习中最常用的处理最大公约数和最小公倍数的方法!!!
/**
* 6、题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
*
* 思路:
* 最大公约数:
* 1、辗转相除法:拿大的数取余小的数,再将余数与小的数比较、替换,重复以上步骤,直到余数为0,
* 此时较小的数就是最大公约数。
* 2、相减法:拿大的数减小的数,一直循环,直到两数相等为止,此时相等的数为最大公约数。
* 3、穷举法,在小的数范围内,两数不断取余,直到都为0为止,不推荐!!!
* 最小公倍数:
* 1、公式法:最小公倍数=两整数的乘积÷最大公约数
* 2、穷举法,不推荐!!!
* 一下列举两种求最大公约数方法及公式法下的最小公倍数
*/
//辗转相除法
public static void test6_1(int a,int b) {
int m=a;
int n=b;
if(m<n) {
int temp = m;
m = n;
n = temp;
}
while(m%n!=0) {
int t = m%n;
m=n;
n=t;
}
System.out.println("最大公约数为"+n);
System.out.println("最小公倍数为"+a*b/n);
}
//辗转相减法
public static void test6_2(int a,int b) {
int m=a;
int n=b;
while(m!=n) {
if(m<n) {
int temp = m;
m=n;
n=temp;
}
int t = m-n;
m=n;
n=t;
}
System.out.println("最大公约数为"+n);
System.out.println("最小公倍数为"+a*b/n);
}