最大公约数和最小公倍数解法(java)

来源:互联网 发布:月经 饮食 知乎 编辑:程序博客网 时间:2024/05/29 09:10

之前解决最大公约数和最小公倍数解法都是自写方式解决。也就是下面的准备模版

//方法解            public sta这里写代码片tic void method(int xiao,int da){                int d=da;                int x=xiao;                long temps = System.currentTimeMillis();    //测试时间                while(xiao!=0){                    int temp=da%xiao;                    da=xiao;                    xiao=temp;                }                System.out.println(da);     //这里得到最大公约数                System.out.println((d*x)/da);   //这里得到最小公倍数            //根据欧几里德算法又称辗转相除法               两数相乘除以最大公约数等于最小公倍数                System.out.println(System.currentTimeMillis()-temps);            }

今天在BigInteger类中看到gcd(); 最大公约数 这个方法;
所以我们就可以节省时间不用写方法啦!

    //BigInteger自带函数解        public static void bigIntergerTest(){            long temp = System.currentTimeMillis();     //测试时间            BigInteger c=new BigInteger("30");            BigInteger d=new BigInteger("12");            BigInteger n = c.gcd(d);            System.out.println(n);              //这里得到最大公约数                                                         //multiply(); 相乘 divide();    相除取整            System.out.println((c.multiply(d)).divide(n));  //这里得到最小公倍数            System.out.println(System.currentTimeMillis()-temp);                }

测试结果:
6
60

0 —-0ms

6
60
2 —2ms
方法写的比BigInteger.gcd(); 快两毫秒!大家可以根据需要来选择吧!

0 0