본문 바로가기

알고리즘

최대공약수 최소공배수 javascript

프로그래머스라는 알고리즘 문제를 풀 수 있는 재미있는 사이트가 있다.

알고리즘 연습하는데 도움이 많이 될 것 같다.

재미있다.


function gcdlcm(a, b) {

        var answer = [];

      

        var bigger = a >= b ? a : b;

        var smaller = a <= b ? a : b;

        

// 최대공약수

        var smallerDivisorArr = [];

        var biggerDivisorArr = [];

        var i = 1;

        while(i <= smaller){

        if(smaller%i == 0){

        smallerDivisorArr.push(i);

        }

        if(bigger%i == 0){

        biggerDivisorArr.push(i);

        }

        i++;

        };

        

        for(var bIndex = biggerDivisorArr.length-1; bIndex >= 0; bIndex--){

        for(var sIndex = smallerDivisorArr.length-1; sIndex >= 0; sIndex--){ 

            if(biggerDivisorArr[bIndex] == smallerDivisorArr[sIndex]){

            answer[0] = biggerDivisorArr[bIndex];

            bIndex = 0;

            break;

            }

            }

        }

        

// 최소공배수

        var multiple;

        var k = 1;

        while(true){

        multiple = bigger * k++;

        if(multiple%smaller == 0){

        answer[1] = multiple;

                break;

        }

        };

        

        return answer;

    }


// 아래는 테스트로 출력해 보기 위한 코드입니다.

console.log(gcdlcm(3,12));


이거 짜놓고 다른 사람 풀이 봤는데....

완전 오징어 -_-.....

분발해야할듯;;

'알고리즘' 카테고리의 다른 글

재귀함수를 이용한 부분집합 구하기  (0) 2020.03.12
숫자 대각선 나열하기  (0) 2017.12.07
약수의 합 javascript  (0) 2017.11.09
제일 작은 수 제거하기 python  (0) 2017.11.09