公约:cd
公倍:cm
直接暴力解法加简短优化
- 公约数:
①.依此从1开始遍历,一直到输入俩数字中最大的数字为止,公约数的查找就是俩个输入的数字都可以整除这个公约数
②.然后一直更新公约数的数字,直到循环结束为止,这时候就取得了最大公约数的值 - 公倍数:
①.从最大的那个数开始遍历,然后直到俩个数的乘积为止。
②.这个数字可以同时整除输出的俩个数字,它就是最小公倍数
③.当查找到第一个这种数字的时候,就可以退出循环
over,是不是so easy 的事情
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
int num1 = scan.nextInt();
int num2 = scan.nextInt();
int cd = 0;//公约数
int cm = 0;//公倍数
int max = Math.max(num1, num2);
//公约数
for(int i = 1; i <= max; ++i) {
if(num1%i == 0 && num2%i == 0)
cd = i;
}
for(int i = max; i <= num1*num2; ++i) {
if(i%num1 == 0 && i%num2 ==0) {
cm = i;
break;
}
}
System.out.println(cd + " " + cm);
}
}