求取最大公約數有三種方法:##
-
短除法
把兩個數一直除以它們的公約數,取它們的商繼續除,直到無約數可除爲止.然後把約數全部乘起來,即爲最大公約數. -
歐幾里德算法(輾轉相除法)
在兩個數中,找出大數.用大數除以小數.得到整數商和餘數.然後再不斷地用除數(原來的小數)除以餘數.直到沒有餘數爲止.那麼除數即爲最大公約數. -
《九章算術》更相減損術
用大數減小數,得到的差,與減數比大小,然後繼續不斷地大數減小數.直到減數等於差爲止.差即爲最大公約數.
@Test
public void cell(){
Scanner sc = new Scanner(System.in);
System.out.println("請輸入第一個值:");
int m = sc.nextInt();
System.out.println("請輸入第二個值:");
int n = sc.nextInt();
//如果
int divisor = divisor(m,n);
System.out.println(divisor);
}
public int divisor(int m,int n){
while(true){
if ((m = m % n) == 0){
return n;
}
if ((n = n % m) == 0) {
return m;
}
}
}
/**
* 兩個數的積除以最大公約數,就是最小公倍數
* @param d
* @param f
* @param n
* @return
*/
public int multiple(int d,int f,int n){
// d = d/n;
// f = f/n;
// int res = n*d*f; (d/n*f/n*n) = d*f/n
int res = d*f/n;
return res;
}