최대 공약수 구하기
공약수는
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을 만들어 공약수가 높아지면서 이를 갱신 할수있었고, 더이상 갱신 할 값이 없을때 포문이 종료되는것을 이용해 포문 밖에 출력 메세지를 써서 최대공략수만 쓸수 있게 되었다.