평행코드

[JS] 최대공약수(Greatest Common Divisor, GCD) ,최소공배수(Least Common Multiple/Lowest Common Multiple, LCM) 본문

코테연습

[JS] 최대공약수(Greatest Common Divisor, GCD) ,최소공배수(Least Common Multiple/Lowest Common Multiple, LCM)

나의 오류는 누군가 겪었던 오류 2023. 3. 22. 23:30
최대공약수(GCD)란

0 이 아닌 두 개 이상의 정수의 공통되는 약수중에서 가장 큰 수입니다.

최대공약수를 구하는 방법은 2부터 두수의 최솟값까지 모든 정수로 나누어보는 방법입니다.

let getGCD = (a, b) => {
    let gcd = 1;

    for(let i=2; i<=Math.min(a, b); i++){
    //Math.min() 함수는 주어진 숫자들 중 가장 작은 값을 반환합니다.
        if(a % i == 0 && b % i == 0){
            gcd = i;
        }
    }

    return gcd;
}

 

 

 
최소공배수(LCM)란

두 개 이상의 자연수의 공통인배수 공배수 중 가장 작은 수입니다.

lcm을 1부터 시작하여 점차 lcm++하면서 각각의 두 수를 lcm으로 나누었을 때 나머지 값이 0인지를 비교합니다.

let getLCM = (a, b) =>{
	let lcm = 1;
   
    while(true){
      if((lcm % a == 0) && (lcm % b == 0)){
        break;
      }
      lcm++;
    }
  return lcm;
}