쭈꾸미
코드짜는 쭈꾸미
쭈꾸미
전체 방문자
오늘
어제
  • 분류 전체보기 (122)
    • Journal (54)
      • Today I Learned (44)
      • 후기&회고 (4)
      • 개인 프로젝트 (4)
      • 독서일기 (2)
    • HTML, CSS (5)
    • Javascript (32)
    • Typescript (2)
    • Git, Github (4)
    • Algorithm (1)
    • React, Next.js (14)
    • API, Database (6)
      • API (0)
      • Database (1)
      • GraphQL (2)
      • Rest-API (1)
    • React-Native (1)
    • ETC (2)
    • OS (1)
      • 우분투 Ubuntu (1)

인기 글

티스토리

hELLO · Designed By 정상우.
쭈꾸미

코드짜는 쭈꾸미

Algorithm

[Algorithm] 유클리드 호제법

2022. 2. 14. 17:35

유클리드 호제법이란?

2개의 자연수의 최대공약수를 구할 수 있는 공식으로 명시적으로 기술된 가장 오래된 알고리즘이다.

호제법(互除法)이란 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻어낸다는 의미이다.

 

정리

두 수 a, b가 있다고 가정해보자. (a > b)

큰 수(a)를 작은 수(b)로 나눴을 때 나머지 값이 0이 되면, 나눴던 수 중 작은 수(b)가 최대공약수가 된다.

0이 되지 않는다면 작은 수(b)가 큰 수가 되고, 나머지 값(c)이 작은 수가 된다.

작은 수(b)에 나머지 값(c)을 나누는 식으로 나머지가 0이 될 때까지 반복한다.

나머지가 0이 되면, 나누었던 두 수 중 작은 수가 최대공약수가 된다.

 

Javascript 예시 문법

function solution(n, m) {
  let a = m; //큰 수가 들어온다.
  let b = n; //작은 수가 들어온다.
  let r = 0; //a를 b로 나눴을 때의 나머지 값

  while (a % b > 0) {
    r = a % b;
    a = b; //큰 수에 작은 수를 할당
    b = r; //작은 수에 나머지 값 할당
  }

  // 최소공배수 : n과 m을 곱한 값에 최대 공약수를 나누면 최소공배수가 된다.
  return [b, (n * m) / b];
}

 

저작자표시 (새창열림)
    쭈꾸미
    쭈꾸미
    느리지만 확실하게 / 웹 프론트엔드 개발자 TIL : https://jooeun-k.github.io/TIL/

    티스토리툴바