之前解决最大公约数和最小公倍数解法都是自写方式解决。也就是下面的准备模版
//方法解
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(); 快两毫秒!大家可以根据需要来选择吧!