1 问题
求最大公约数和最小公倍数是我们常见问题。用来解决数据较多的时候来统计公约数,公倍数
2 方法
输入两个正整数 求最大公约数和最小公倍数
public class TestDay06 { public static void main(String[] args) { gcdlcm gcdlcm = new gcdlcm(); System.out.println("两个数的最大公约数是:" gcdlcm.gcd(10, 16)); System.out.println("两个数的最小公约数是:" gcdlcm.lcm(10, 16)); } private static class gcdlcm { int gcd(int m, int n) { if (m < n) { //这个判断是为了将大数放在前面 int temp = n; n = m; m = temp; } if (m % n == 0) { return n; } else { m %= n; return gcd(m, n); //这里也可以成gcd(n,m),就省掉了前面的判断了,会快一点 } } int lcm(int m, int n) { int i = 1; if (m < n) { //这个判断是为了将大数放在前面 int temp = n; n = m; m = temp; } int lcm = m; while (lcm % n != 0) { lcm = m * i; i ; } return lcm; } }} |
---|
3 结语
针对求最大公约数和最小公倍数的问题本次代码略显复杂,有更加简便的方法需要我们去探索。