最大公约数及最小公倍数


import java.util.*;
public class Testshu
{
 public static void main(String [] args)
 {
  //定义两个整型数
  int a;
  int b;
 
  Scanner sc = new Scanner(System.in);

 //调用java.util.Scanner可以获得从键盘输入的数字;
  System.out.println("请输入一个数:");
  //nextInt()方法用来获取int数
  a = sc.nextInt();
  System.out.println("请再输入一个数:");
 
  b = sc.nextInt();
 
 
  if(b<a) //判断两个数的大小,a比b小不用换,a比b大则互换位置
  {
   int temp = a;
   a = b;
   b = temp;
  }
  System.out.println("最大公约数为:"+GYS(a,b);
  System.out.println("最小公倍数为:"+GBS(a,b);
 }

//求最大公约数
 public static int GYS(int a, int b)
 {
  //利用递归,大数除小数,若余数不为0,则让较小得数a做被除数,余数k做除数,直到k=0,此时a为最大公约数
  //将求余之后的值作为a    * 将之前的a作为b直到求余值为0为止结束循环
  while(b%a != 0)
  {
   int k = b%a;
   b = a;
   a = k;
  }
  return a;
 }

 //求最小公倍数
 public static int GBS(int a ,int mab)
 {
  //最小公倍数就是两个数相乘再除以最大公约数
  return a*b/GYS(a,b);
 }
}

posted @ 2018-04-10 21:39  马蓉  阅读(167)  评论(1编辑  收藏  举报