https://www.acmicpc.net/problem/1934
let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n')
let N = input[0];
input.shift();
const nums = input.map(v => v.split(' ').map(v => +v));
function gcd(a, b) { // 유클리드 호제법
if (a < b) {
[a, b] = [b, a];
}
if (b === 0) {
return a;
} else {
return gcd(b, a % b);
}
}
console.log(nums.map((el) => (el[0]*el[1])/gcd(el[0], el[1])).join('\n'));
- 받아온 배열을
**gcd**함수에 파라미터로 보내고 그 배열을 유클리드 호제법을 통해서 최소공약수를 구해준다.**gcd**함수는a,b값을 비교해서 더 큰 수를 앞에다가 두고 나눈 나머지를 재귀함수를 통해서b가 0이 될때까지 수행한다.- 재귀함수에서 리턴된 값을
a,b를 곱한 값에다가 나눠주고 출력