import java.util.Scanner;
public class TestNum{
  public static void main(String[] args){
    Scanner sca = new Scanner(System.in);
    System.out.println("请输入两个整数:");
    int m = sca.nextInt();
    int n = sca.nextInt();
    int temp,r;
    if(n<m){
      temp = n;
      n = m;
      m = temp;
    }
    int p = n*m;
    while(m!=0){
      r = n%m;
      n = m;
      m = r;
    }
    System.out.println("它们的最大公约数是:"+n);
    System.out.println("它们的最小公倍数是:"+p/n); 
  }
}
 请高手帮忙请解?

解决方案 »

  1.   


    /**
     * 最大公约
     * @param a
     * @param b
     * @return
     */
    private static int getMaxNum(int a, int b) {
    int tmp;
    while ((tmp = a % b) != 0) {
    a = b;
    b = tmp;
    }
    return b;
    }
    /**
     * 最小公倍
     * @param a
     * @param b
     * @return
     */
    private static int getMinNum(int a, int b) {
    return a*b/getMaxNum(a, b);
    }
      

  2.   

    你看看这个,我自己写的,可以运行通过。
    import java.util.Scanner; public class TestNum { public static void main(String[] args) { 
    Scanner sca =new Scanner(System.in); 
    System.out.println("请输入两个数:"); //输入两个数中间用空格隔开就行 
    int m = sca.nextInt(); 
    int n = sca.nextInt(); 
    int temp,r; 
    if(n<m) 

    temp=n; 
    n=m; 
    m=temp; 

    int p = n*m; 
    while(m!=0) 

    r=n%m; 
    n=m; 
    m=r; 

    System.out.println("他们的最大公约数是:"+n); 
    System.out.println("他们的最小公倍数是:"+p/n); } } 
      

  3.   

    有很多种解法哦 
    import java.io.*;
    public class TestNum
    {
    public static void main(String[] args)
          {
    int a=0;
            System.out.print("请输入一个数a:");
            try
            {
               BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
               a=Integer.parseInt(br.readLine());
            }
            catch(IOException ex)
            {
            
            }
            int b=0;
             System.out.print("请输入另一个数b:");
            try
          {
             BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
                b=Integer.parseInt(br.readLine());
           }
            catch(IOException ex)
            {
            
            }
            if(a<=0||b<=0)
            System.out.println("你输入的数不合法,将会出现错误!");
            int ab=a*b;
            int r=0;
            if(a<b)
            {
             r=a;
                b=a;
                a=r;
             }
            int i=1;
            while(i!=0)
            {
             i=a%b;
                a=b;
                b=i;
             }
            System.out.println("你输入的两数的最大公约数为:"+a);
            System.out.println("你输入的两数的最小公倍数为:"+ab/a);
          }
    }
      

  4.   


    import java.util.Scanner; 
    public class TestNum{ 
      public static void main(String[] args){ 
        Scanner sca = new Scanner(System.in); 
        System.out.println("请输入两个整数:"); 
        int m = sca.nextInt(); 
        int n = sca.nextInt(); 
        int temp,r; 
        if(n <m){ 
          temp = n; 
          n = m; 
          m = temp; 
        } 
        int p = n*m;        //写到这一行是因为求最小公倍数时m和n的之会改变,p除以最小公倍数就是他们的最大公约数
        while(m!=0){      //求m和n的最小公倍数
          r = n%m; 
          n = m; 
          m = r; 
        } 
        System.out.println("它们的最大公约数是:"+n); 
        System.out.println("它们的最小公倍数是:"+p/n); 
      } 
    }