1、最大公约数
现在用欧几里得原理求最大公约数的代码为
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int a = scanner.nextInt();
int b = scanner.nextInt();
int r = 1;
while(r > 0){
r = a % b;
a = b;
b = r;
}
System.out.println(a);
}
}
}
2、最小公倍数
原理
设a,b两数的最大公约数为g
a = g * k
b = g * l
那么a,b两数的最小公倍数n = g * l * k
n = a * b / g
即两数的最小公倍数为两数乘积除以两数的最大公约数
代码如下:
import java.util.Scanner;
public class Main {
//求最小公倍数
public static int LCM(int a, int b){
int r = 1;
while(r > 0){
r = a % b;
a = b;
b = r;
}
return a;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int a = scanner.nextInt();
int b = scanner.nextInt();
//最小公倍数是两数乘积除以两数的最大公约数
System.out.println(a * b / LCM(a,b));
}
}
}