输入两个数,求最大公约数和最小公倍数
首先要知道这两点:
1.A,B的最大公约数取值范围:大于零,小于AB之间最小数;
2.A,B的最小公倍数取值范围:大于AB之间最大数,小于或等于A*B。
接下来上代码: (注释很详细的哟!!!)
“`
import java.util.*;
public class Work23{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("输入两个正整数:");
int m = scan.nextInt(); //输入两个正整数m、n
int n = scan.nextInt();
//比较输入的两个数值的大小,赋值给min、max变量
int min = Math.max(m,n);
int max = Math.min(m,n);;
//最大公约数
for(int i=min;i>0;i--){ //从两个数值之间最小数起,递减到0
if(m%i==0&&n%i==0){ //如果输入的两个数字被i整除则此时的i为两者的最大公约数
System.out.println("最大公约数"+i);
break;
}
}
//最小公倍数
for(int i=max;i<=m*n;i++){ //从两个数值之间最大数起,递增到两者的乘积
if(i%m==0&&i%n==0){ //如果i满足把输入的两个数字整除则此时的i为两者的最小公倍数
System.out.println("最小公倍数"+i);
break;
}
}
}
}