코딩연습이 좋아서

최대공약수와 최소공배수

zoaseo 2022. 6. 15. 09:37

function solution(n,m){
            let answer = [];
            //최대공약수 구하기
            //두 수중 작은 수만큼 반복하기
            //두 수를 1부터 작은 수까지 나머지 연산을 했을때 
            //둘 다 0이 되는 가장 큰 수를 구하기
            for(let i=1; i<=Math.min(n,m); i++){
                if(n%i===0 && m%i===0){
                    answer[0] = i;
                }
            }
            //최소공배수 구하기
            //어떤 수를 n으로 나누었을때 나머지가 0이 되고
            //어떤 수를 m으로 나누었을때 나머지가 0이 되는 수 중
            //가장 작은 수
            let lcm = 1;
            while(true){
                if(lcm%n===0 && lcm%m===0){
                    break;
                }
                lcm++;
            }
            answer[1] = lcm;
            return answer;
        }