JavaScript

[FrontEnd2] 함수를 이용해 최대공약수, 최소공배수 구하기

보라해바라기 2022. 5. 27. 17:11
SMALL

안녕하세요:) 보라해바라기입니다.

 

오늘은 함수를 이용해서 최대공약수와 최소공배수를 구하는 프로그램을 만들어보았습니다.

 

1. 최대공약수 구하기

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var a = parseInt(prompt("첫번째 정수 입력"))
        var b = parseInt(prompt("첫번째 정수 입력"))

        function greatestCommonFactor(a, b) {
            var divisor = 2
            var total = 1

            if (a>=b){
                while (divisor<=b) {
                    if (a%divisor == 0 && b%divisor==0){
                        total *= divisor
                        a /= divisor
                        b /= divisor
                        continue
                    }
                    divisor++
                }
                
            }
            else { // (a<b)
                while (divisor<=a) {
                    if (a%divisor == 0 && b%divisor==0){
                        total *= divisor
                        a /= divisor
                        b /= divisor
                        continue
                    }
                    divisor++
                }
            }
            return total
        }

        var result = greatestCommonFactor(a, b)
        document.write("최대공약수: " + result, "<br>")
    </script>
</head>
<body>
    
</body>
</html>

 

2. 최소공배수 구하기

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var a = parseInt(prompt("첫번째 정수 입력"))
        var b = parseInt(prompt("첫번째 정수 입력"))

        function leastCommonMultiple(a, b) {
            var divisor = 2
            var total = 1

            if (a>=b){
                while (divisor<=b) {
                    if (a%divisor == 0 && b%divisor==0){
                        total *= divisor
                        a /= divisor
                        b /= divisor
                        continue
                    }
                    divisor++
                }
                
            }
            else { // (a<b)
                while (divisor<=a) {
                    if (a%divisor == 0 && b%divisor==0){
                        total *= divisor
                        a /= divisor
                        b /= divisor
                        continue
                    }
                    divisor++
                }
            }
            return (total * a * b)
        }

        var result = leastCommonMultiple(a, b)
        document.write("최소공배수: " + result, "<br>")
    </script>
</head>
<body>
    
</body>
</html>

 

728x90