求兩個數最大公約數和最小公倍數。
如果有一個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數。幾個自然數公有的約數,叫做這幾個自然數的公約數。
公約數中最大的一個公約數,稱為這幾個自然數的最大公約數。
幾個數共有的倍數叫做這幾個數的公倍數,其中最小的一個公倍數,叫做這幾個數的最小公倍數。
求最大公約數公式:f(x, y)= f(y, x%y)(y > 0)
求最小公倍數公式:最小公倍數=兩數的乘積/最大公約(因)數
package wzs.arithmetics;// 求兩個數最大公約數和最小公倍數。 // 如果有一個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數。幾個自然數公有的約數,叫做這幾個自然數的公約數。// 公約數中最大的一個公約數,稱為這幾個自然數的最大公約數。 // 幾個數共有的倍數叫做這幾個數的公倍數,其中最小的一個公倍數,叫做這幾個數的最小公倍數。// f(x, y)= f(y, x%y)(y > 0)最大公約數// 最小公倍數=兩數的乘積/最大公約(因)數public class Test_wzs6{ public static void main(String[] args) { int x = 28; int y = 12; System.out.println("最大公約數:" + Test_wzs6.f(x, y)); System.out.println("最小公倍數:" + x * y / Test_wzs6.f(x, y)); } /** * 求最大公約數 * @param x * @param y * @return */ public static int f(int x, int y) { if (x < 0 || y < 0) { System.out.println("輸入錯誤."); return -1; } if (y == 0) { // System.out.println("最大公約數:" + x); return x; } return f(y, x % y); }}