본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 2609번: 최대공약수와 최소공배수 [C++]

문제 출처: www.acmicpc.net/problem/2609

 

2609번: 최대공약수와 최소공배수

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

www.acmicpc.net

1. 코드

#include <iostream>

using namespace std;

int main(void)
{
	int n1, n2;
	int low = 1, high;
	int limit;
	cin >> n1 >> n2;
	limit = n1 > n2 ? n1 : n2;
	
	for (int i = 2; i <= limit; i++)
	{
		if (n1 % i == 0 && n2 % i == 0)
			low = i;
	}
	high = n1 * n2 / low;
	cout << low << endl << high;
	return 0;
}

(실행)

2. 풀이

이 문제는 최대 공약수와 최소 공배수에 대해 알고만 있다면 쉽게 풀 수 있는 문제인데 반복문을 이용하여 쉽게 최대 공약수에 대해서 해결하고 최소 공배수 같은 같은 경우에는 최대 공약수를 이용하여 식을 이용하여 쉽게 구할 수 있다.