본문 바로가기
알고리즘/백준

[백준] 1934번: 최소공배수 (JavaScript, node.js)

by gardenii 2024. 5. 27.

[백준] 1934번: 최소공배수 (JavaScript, node.js)

https://www.acmicpc.net/problem/1934

https://github.com/jwc406/algorithm_Solving/tree/main/%EB%B0%B1%EC%A4%80/%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98

 

algorithm_Solving/백준/최소공배수 at main · jwc406/algorithm_Solving

알고리즘 풀이 저장소입니다. Contribute to jwc406/algorithm_Solving development by creating an account on GitHub.

github.com

 

let input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
input = input.map((e) => e.replace("\r", ""));

const testCase = Number(input[0]);

let result = "";

// 최대공약수 구하기 - 유클리드 호제법
for (i = 1; i <= testCase; i++) {
  let nums = input[i].split(" ").filter(Boolean);
  nums.sort((a, b) => b - a); // 큰 수가 앞에 오도록 정렬
  a = nums[0]; 
  b = nums[1];

  while (b !== 0) {
    r = a % b;
    a = b;
    b = r;
  }

  // 최소공배수 구하기 - a, b의 최소공배수 =  a*b/a,b의 최대공약수
  let leastCM = (nums[0] * nums[1]) / a;
  result += leastCM + "\n";
}

console.log(result);

 

* 주석 없는 코드

더보기
let input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
input = input.map((e) => e.replace("\r", ""));

const testCase = Number(input[0]);

let result = "";

for (i = 1; i <= testCase; i++) {
  let nums = input[i].split(" ").filter(Boolean);
  nums.sort((a, b) => b - a); 
  a = nums[0]; 
  b = nums[1];

  while (b !== 0) {
    r = a % b;
    a = b;
    b = r;
  }
  
  let leastCM = (nums[0] * nums[1]) / a;
  result += leastCM + "\n";
}

console.log(result);