用ava怎么写出这个程序我是新手求大神讲解。

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

/**在循环中,只要除数不等于0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最大公约数,最小公倍数为两数之积除以最大公约数。* /

 import java.util.*;
public    class     lianxi06     {  
public static void main(String[] args) {
  int     a ,b,m;
  Scanner s = new Scanner(System.in);
  System.out.print( "键入一个整数: "); 
  a = s.nextInt();System.out.print( "再键入一个整数: "); 
  b = s.nextInt();      
  // new 一个类 目的是调用类中的方法 deff
   deff cd = new deff();      
   // 调用类中的方法 deff 获得最大公约数
  m = cd.deff(a,b);      

  // 计算最小公倍数 ,这个纯粹是数学知识
  int n = a * b / m;      
  System.out.println("最大公约数: " + m);      
  System.out.println("最小公倍数: " + n); 
 }
}

class deff {
 public int deff(int x, int y) {
  int t;
  // 如果x<y 则将x和y的值互换
  if (x < y) {
   t = x;
   x = y;
   y = t;
  }

  //程序执行到这里 x肯定大于或者等于y

  while (y != 0) {
   // 如果x和y相等,那么他们的最大公约数是x
   if (x == y){
    return x;
   }
   // 当x和y不相等的时候 将y的值赋值给x 将原x的值和y的余数赋值给y
   // 这时候x依然大于或者等于y 接着进行下一轮计算
   // 一直循环下去,当k为0的时候,x就是最大公约数了
   else {
    int k = x % y;
    x = y;
    y = k;
   }
  }
  return x;
 }
}

//公约数
public int getDivisor(int m,int n)
{
var max = m>n ? m : n;
var min = m<n ? m : n;
var temp = max%min;
if(temp != 0)
return getDivisor(min,temp);
return min;
}

//公倍数
public int getMultiple(int m,int n)
{
return m*n/getDivisor(m,n);
}

public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入正整数m:");
int m = Integer.parseInt(scan.nextLine());
Scanner scan1 = new Scanner(System.in);
System.out.println("请输入正整数n:");
int n = Integer.parseInt(scan1.nextLine());
int beichushu = 1;
int chushu = 1;
int temp;
if (m > n) {//如果m>n 被除数设为m 除数设为n
beichushu = m;
chushu = n;
} else if (m < n) {//如果m beichushu = n;
chushu = m;
}
while (chushu > 0) {//如果除数>0 就执行循环
temp = beichushu % chushu;//算出余数
beichushu = chushu;//将除数的值赋值给被除数
chushu=temp;//将余数的值赋值给除数
}
System.out.println("最大公约数:" + beichushu);
System.out.println("最小公倍数:" + m * n / beichushu);

}

public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入正整数m:");
int m = Integer.parseInt(scan.nextLine());
Scanner scan1 = new Scanner(System.in);
System.out.println("请输入正整数n:");
int n = Integer.parseInt(scan1.nextLine());
int beichushu = 1;
int chushu = 1;
int temp;
if (m > n) {//如果m>n 被除数设为m 除数设为n
beichushu = m;
chushu = n;
} else if (m < n) {//如果m beichushu = n;
chushu = m;
}
while (chushu > 0) {//如果除数>0 就执行循环
temp = beichushu % chushu;//算出余数
beichushu = chushu;//将除数的值赋值给被除数
chushu=temp;//将余数的值赋值给除数
}
System.out.println("最大公约数:" + beichushu);
System.out.println("最小公倍数:" + m * n / beichushu);

}