用java编程求出两个数的最大公约数和最小公倍数
最大公约数:能同时被两个数整除的最大数就是最大公约数
最小公倍数:能同时整数两个数的最小数就是最小公倍数
对于两个数的公约数我们可以先判断谁大谁小,因为较大的数能整除的除数最后的数是肯定大于比较小的数能整除的除数,这样我们只要从较小的数的除数是否能被较大的数整除,如果是的话,那么是的话就是公约数,但是不是的话,只能是1为最大公约数了。而且,公约数既然求最大的,那么我们可以倒着求得比较小的值的最大除数能否被另个数整除,能则是最大公约数,不是依次递减。
对于两个数的最小公倍数就是应该从比较大的数开始整除较小的数,若除不尽则翻倍递加,直到两个数相乘这个范围
int a = 20 , b = 30;
for(int i = a; i > 0; i--){
if(b % i == 0){
System.out.println("最大公约数是=" + i);
break;
}
}
for(int i = b; i <= a*b; i += b){
if(i % a == 0){
System.out.println("最小公倍数是=" + i);
break;
}
}