1. 程式人生 > >最大公約數及最小公倍數

最大公約數及最小公倍數

sts 輸入 約數 system 調用 can util 獲取 n)


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);
}
}

最大公約數及最小公倍數