publicstaticvoidmain(String[] args){// 方法1
Scanner scanner =newScanner(System.in);
System.out.println("请输入一号数");int one = scanner.nextInt();
System.out.println("请输入二号数");int two = scanner.nextInt();// 获取最大值int max = one >= two ? one : two;// 获取最小值int min = one <= two ? one : two;// 最大公约数int big =0;// 最小公倍数int small =0;// 最大公约数不能超过最小的数本身for(int i =1; i <= min; i++){// 获取最大公约数if(0== one % i &&0== two % i){
big = i;}// 任意两个正整数至少有一个公倍数,那就是2个数互乘,这里就是i代表小的那个数,j代表大的那个数// 从max * 1 == min * 1开始遍历试出最小公倍数// max * i == min * j的原因是避免出现max=one时, one * j中的j等价于 one 值for(int j =1; j <= max; j++){if(max * i == min * j){// small == 0用于使small可以参与到运算中来if(small > max * i || small ==0){// 取得最小公倍数
small = max * i;}break;}}}
System.out.println("最大公约数:"+ big);
System.out.println("最小公倍数:"+ small);}
publicstaticvoidmain(String[] args){// 方法2int max = m >= n ? m : n;int min = m <= n ? m : n;// 最大公约数int big =0;// 最小公倍数int small =0;for(int i =1; i <= min; i++){if(0== m % i &&0== n % i ){
big = i;}}// 从最大值开始加,加1加到m * nfor(int i = max; i <= m * n; i++){if(0== i % m &&0== i % n ){
small = i;break;}}
System.out.println("最大公约数:"+ big);
System.out.println("最小公倍数:"+ small);}