C#/Problems

최대 공약수 구하기

미고렝 2019. 9. 24. 17:34

공약수는 

            int num1 = int.Parse(Console.ReadLine());
            int num2 = int.Parse(Console.ReadLine());            
            for (int i = 1; i < num1 || i<num2; i++)
            {
                if (num1 % i == 0 && num2 % i == 0) //공약수
                {
                    Console.WriteLine(i);
                }                         
            }
코드를 통해 구할수 있었지만 최대 공약수를 구하려면 공약수 끼리 비교를 해야한다는 생각때문에 난관에 부딪혔었다.

정답 코드:

int num1 = int.Parse(Console.ReadLine());
            int num2 = int.Parse(Console.ReadLine());
            int sum = 0;
            for (int i = 1; i < num1 || i<num2; i++)
            {
                if (num1 % i == 0 && num2 % i == 0) //공약수
                {
                    sum = i;
                }                         
            }
            Console.WriteLine(sum);
            

하지만 새로운 변수 sum을 만들어 공약수가 높아지면서 이를 갱신 할수있었고, 더이상 갱신 할 값이 없을때 포문이 종료되는것을 이용해 포문 밖에 출력 메세지를 써서 최대공략수만 쓸수 있게 되었다.