Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

두 숫자의 최소 공배수를 계산하는 프로그램 작성 JavaScript

<시간/>

두 개의 숫자를 받아들이고 최소 공배수를 반환하는 함수를 작성해야 합니다.

최소공배수(LCM)

두 수와 b의 최소 공배수는 와 b로 나눌 수 있는 가장 작은 양의 정수입니다.

예를 들어 − 6과 8의 LCM은 24입니다. 24는 6과 8로 나누어지는 가장 작은 양의 정수이기 때문입니다.

LCM 계산 방법

두 숫자 a와 b의 최소공배수를 계산하는 여러 방법 중 하나는 a와 b의 곱을 a와 b를 모두 나누는 최대 정수(최대공약수 또는 GCD라고도 함)로 나누는 것입니다.

6과 8의 경우 곱은 48이고 둘을 나누는 가장 큰 정수는 2이므로 LCM은 -

(6*8)/2 = 24

이러한 사항을 명확하게 했으면 이제 코딩 부분으로 이동하겠습니다. −

예시

const lcm = (a, b) => {
   let min = Math.min(a, b);
   while(min >= 2){
      if(a % min === 0 && b % min === 0){
         return (a*b)/min;
      };
      min--;
   };
   return (a*b);
};
console.log(lcm(6, 8));
console.log(lcm(16, 18));
console.log(lcm(0, 8));
console.log(lcm(11, 28));
console.log(lcm(18, 34));

코드 이해

두 숫자를 정확히 나누는 가장 큰 정수는 여전히 두 숫자 중 작은 숫자와 같거나 작기 때문에 LCM을 계산하고 있으므로 더 작은 숫자에서 2까지 감소하는 루프를 실행합니다.

반복에서 두 숫자를 나누는 숫자를 찾으면 감소 루프에 있기 때문에 두 숫자를 나누는 가장 큰 숫자임을 보장할 수 있으므로 LCM을 사용하여 바로 그곳으로 돌아갑니다.

전체를 반복하는 경우 해당 숫자를 찾지 못했고 1이 둘을 나누는 유일한 숫자이므로(즉, 숫자는 공소임) 제품을 반환하기만 하면 됩니다.

출력

콘솔의 출력은 다음과 같습니다. -

24
144
0
308
306