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

[백준] 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);