개발 => 복습 후 재정리 대기/알고리즘

[programers][JavaScript] 최대공약수와 최대공배수 (자바스크립트)

장 상 현 2021. 9. 22.
 

코딩테스트 연습 - 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의

programmers.co.kr

function solution(n, m) {
    
  let result = [];
    
  let first_n = n;
  let first_m = m;

  while (m != 0) {
    let temp = m;
    m = n % m;
    n = temp;
  }
    
  result.push(n); // 최대공약수
  result.push((first_n * first_m) / n); // 최소공배수
    
  return result;
}

 

function solution(n, m) { // 어이가 없네...
    const gcd = (a, b) => a % b === 0 ? b : gcd(b, a % b);
    const lcm = (a, b) => a * b / gcd(a, b);
    return [gcd(n, m), lcm(n, m)];
}

댓글