题解 | #求最小公倍数#
求最小公倍数
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; } }
雪域灰灰刷题笔记 文章被收录于专栏
雪域灰灰刷题笔记