简要概述:
根据递推策略设计辗转相除法:a,b的最大公约数,也是a%b的约数。以此方法递推,直到余数为0
代码实现:
import java.util.Scanner;
public class Test{
//最大公约数
public static int yue(int n,int m){
if(n==0||m==0)
return 0;
if(n<m){
int temp = n;
n = m;
m = temp;
}
int r = n%m;
while(r!=0){
n=m;
m=r;
r=n%m;
}
return m;
}
//最小公倍数
public static int bei(int n,int m){
if(yue(n,m)==0)
return 0;
return n*m/yue(n,m);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
System.out.println("最大公约数:"+yue(n,m));
System.out.println("最小公倍数:"+bei(n,m));
}
}
/**基本思想:
* 辗转相除法(也可以用相减法,本质相同)
*/
本文介绍了一种使用辗转相除法来计算两个整数的最大公约数(GCD)和最小公倍数(LCM)的方法。通过递归地应用余数运算,直至余数为0时,最后的非零余数即为最大公约数。进一步利用最大公约数计算最小公倍数。
2万+

被折叠的 条评论
为什么被折叠?



