연습장/백준(BOJ) 문제풀이

[백준 2609] 최대공약수와 최소공배수 with Node.js

Tesseractjh 2021. 4. 8. 17:00

문제 링크

www.acmicpc.net/problem/2609

 

2609번: 최대공약수와 최소공배수

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

www.acmicpc.net

풀이

const [a, b] = require("fs").readFileSync("/dev/stdin").toString().trim().split(" ").map(i=>parseInt(i));
let i = a;
let j = b;

while (i % j !== 0) {
    let n = i % j;
    if (n !== 0) {
        i = j;
        j = n;
    }
}
console.log(j)
console.log(a*b/j)

유클리드 호제법을 활용하여 최대공약수를 구한다. 그리고 a, b의 곱을 최대공약수로 나누면 a, b의 최소공배수를 구할 수 있다.