首先要知道这两点:
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();
int min;
int max;
if(m>n){ //比较输入的两个数值的大小,赋值给min、max变量
min=n;
max=m;
}else{
min=m;
max=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;
}
}
}
}