유클리드 호제법(최대공약수, 최소공배수)

김재범·2022년 8월 2일
0

알고리즘TIL

목록 보기
6/9

유클리드 호제법

최대공약수를 구하기 위한 알고리즘(공식)
a를 b로 나눴을 때 (a가 b보다 클 경우) === 큰 수를 작은 수로 나눴을 때
나머지 값이 0이 되면, 작은 수(b)가 큰 수(a)가 되고
나머지 값이 작은 수 (b)가 된다.
반복했을 때 나머지 값이 0이 나오면, 작은 수(b)가 최대공약수가 된다.

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 // 작은 수는 나머지 값을 가져온다.     
    }
   return[b, (m*n)/b]
}
profile
지식을 쌓고 있습니다.

0개의 댓글