最大公约数
例如 求15与40的最大公约数
代码如下:
int a = 15, b = 40;
for(;;) {
if( a==0 ) {
System.out.println(b);
break;
}
int t = a ;
a = b%a;
b = t;
}
a<b 若求ab最大公约数 则该数与(b-a)与a的最大公约数相同 以此类推当某一数为0时另一数则为最大公约数
简洁写法:
定义方法:
public static int F(int a ,int b) {
if(a==0){return b;}
return F(b%a,a);
}
public static void main(String[] args) {
System.out.println(F(40,15));
}
可以不用管参数顺序位置 得出结果都为5
最小公倍数
最小公约数为 i
a = x * i
b = y * i
a * b = x * y * i * i
所以最小公倍数为 x * y * i
为a * b / i
int a = 15, b = 40;
System.out.println(a*b/F(40,15));
结果为120