Java经典案例之-“最大公约数和最小公倍数”

/**

 * 描述:输入两个正整数m和n,求其最大公约数和最小公倍数.(最大公约数:最大公约数,

 * 也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。)

 * (最小公倍数:几个数共有的倍数叫做这几个数的公倍数,其中除0以外最小的一个公倍数,

 * 叫做这几个数的最小公倍数。)

 * 分析:可以利用辗转相除法求两个数的最大公约数与最小公倍数。(辗转相除法:两个整数的

 * 最大公约数等于其中较小的数和两数的相除余数的最大公约数。例如,252和105的最大公

 * 约数是21(252 = 21 × 12;105 = 21 × 5);因为252 / 105 = 2余42,

 * 所以105和42的最大公约数也是21。)

 * 作者:徐守威

 */

package com.xushouwei;

import java.util.*;

public class T6 {

 

   /**

    * @param args

    */

   public static void main(String[] args) {

      // TODO Auto-generated method stub

      Scanner sc=new Scanner(System.in);

      System.out.println("请输入第一个正整数:");

      int num1=sc.nextInt();

      System.out.println("请输入第二个正整数:");

      int num2=sc.nextInt();

      System.out.println("最大公约数为:"+divisor(num1,num2)+",最小公倍数为:"+multiple(num1,num2));

   }

   //定义一个求最大公约数的额方法

   public static int divisor(int num1, int num2) {

      int temp;

      while (num1 != 0)

      {

         temp = num1;

         num1 = num2 % num1;

         num2 = temp;

      }

      return num2;

    }

   //定义一个求最小公倍数的方法

   public static int multiple(int num1, int num2)

   {

      return (num1*num2)/divisor(num1,num2);

   }

}

原文地址:https://www.cnblogs.com/Jasxu/p/zuidagongyueshuhezuixiaogongbeishu.html