/** * 最大公约数 */ publicintgetGCD(int m, int n) { if (n == 0) { return m; } return getGCD(n, m % n); }
/** * 最小公倍数 * @param m * @param n * @return */ publicintgetLCM(int m, int n) { intmn= m * n; return mn / getGCD(m, n); }
/** * 辗转相除求最大公约数 * 有两整数a和b: * ① a%b得余数c * ② 若c=0,则b即为两数的最大公约数 * ③ 若c≠0,则a=b,b=c,再回去执行① */ publicintdivisionGCD(int m, int n) { int a; while (n != 0) { a = m % n; m = n; n = a; } return m; } /** * 相减法求最大公约数 * 有两整数a和b: * ① 若a>b,则a=a-b * ② 若a<b,则b=b-a * ③ 若a=b,则a(或b)即为两数的最大公约数 * ④ 若a≠b,则再回去执行① */ publicintsubtractionGCD(int m,int n){ while(m != n){ if (m>n){ m = m-n; }else { n = n - m; } } return m; }