题解 | #求最小公倍数#
求最小公倍数
https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int a = 0;
int b = 0;
while (in.hasNextInt()) { // 注意 while 处理多个 case
if(a == 0){
a = in.nextInt();
} else if(b == 0){
b = in.nextInt();
}
}
int result = result(a, b);
System.out.println(result);
}
private static int result(int a, int b) {
boolean min = a < b;
int c = min ? a : b;
if (min) {
int t = b / a;
int m = b % a;
if (t > 0 && m == 0) {
return b;
}
}
int temp_a = a;
int temp_b = b;
List<Integer> list = new LinkedList<>();
for (int i = 2; i < c; i++) {
int t_a = temp_a / i;
int m_a = temp_a % i;
int t_b = temp_b / i;
int m_b = temp_b % i;
if (t_a > 0 && m_a == 0 && t_b > 0 && m_b == 0) {
temp_a = temp_a/i;
temp_b = temp_b/i;
list.add(i);
i =1;
}
}
if(list.size() == 0){
return a*b;
}
int mult = 1;
for(Integer i : list){
mult *= i;
}
int t_a = a / mult;
int t_b = b / mult;
return mult * t_a * t_b;
}
}
雪域灰灰刷题笔记 文章被收录于专栏
雪域灰灰刷题笔记
联想公司福利 1477人发布
查看8道真题和解析