문제 출처: www.acmicpc.net/problem/2609
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. 풀이
이 문제는 최대 공약수와 최소 공배수에 대해 알고만 있다면 쉽게 풀 수 있는 문제인데 반복문을 이용하여 쉽게 최대 공약수에 대해서 해결하고 최소 공배수 같은 같은 경우에는 최대 공약수를 이용하여 식을 이용하여 쉽게 구할 수 있다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 11653번: 소인수분해 [C++] (0) | 2021.05.01 |
---|---|
백준 알고리즘 1934번: 최소공배수 [C++] (0) | 2021.03.31 |
백준 알고리즘 1037번: 약수 [C++] (0) | 2021.03.29 |
백준 알고리즘 9012번: 괄호 [C++] (0) | 2021.03.28 |
백준 알고리즘 9093번: 단어 뒤집기 [C++] (0) | 2021.03.27 |