
풀이
let fs = require("fs");
let input = fs.readFileSync('예제.txt').toString().trim().split("\n").map(a=>a.split(" ").map(Number))
answer = [];
input = input.splice(1,input.length)
for(let i = 0; i < input.length ; i++){
let [a,b] = input[i]
console.log(a,b)
let oriA = a;
let oriB = b;
while( a % b !== 0 ){
let r = a % b;
if(r!== 0){
a=b
b=r
}
}
let min = oriA * oriB / b;
answer.push(min)
}
console.log(answer.join("\n"))
유클리드 호제법 :
-
- 유클리드 알고리즘은 두 수의 최대공약수(GCD)를 구하는 효율적인 방법입니다.
- 두 수 a와 b가 주어지면, a를 b로 나눈 나머지를 r로 설정하고, a를 b로, b를 r로 교체합니다. 이 과정을 b가 0이 될 때까지 반복하면, 최종적으로 a가 GCD가 됩니다.
원래 두 수의 곱을 최대 공약수로 나누면 최소공배수가 나옴.
'알고리즘' 카테고리의 다른 글
[BOJ]4948 - 베르트랑 공준(JS) (0) | 2024.07.25 |
---|---|
[BOJ]4134 - 다음소수 (JS) (1) | 2024.07.23 |
[BOJ]10816 - 숫자 카드2 (JS) (0) | 2024.07.18 |
[BOJ] 1764 - 듣보잡(JS) (0) | 2024.07.16 |
[BOJ]7785 - 회사에있는사람(JS) (1) | 2024.07.12 |