본문 바로가기

코딩테스트/C++

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

https://www.acmicpc.net/problem/2609

 

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

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

www.acmicpc.net

 

#include <iostream>
#include <stack>
using namespace std;
int main() {
	int A, B;
	int MIN, MAX;
	stack<int> s;
 
	cin >> A >> B;
	
	MIN = A > B ? B : A;
	MAX = A > B ? A : B;
 
	for (int i = MIN;i >= 1;i--) {
		if (MAX % i == 0 && MIN % i == 0) {
			cout << i << "\n";
			break;
		}
	}
 
	for (int i = 1;i <= MIN;i++) {
		if ((MAX * i) % MIN == 0) {
			cout << MAX * i << "\n";
			break;
		}
	}
 
	return 0;
}

 

MAX와 MIN으로 큰수 작은수를 만들어서 풀어주었다. 수학적인 지식이 있으면 간단하게 풀 수 있지만 오래전에 배운 내용이다 보니 조금 헷갈리는 부분도 있었다.

'코딩테스트 > C++' 카테고리의 다른 글

[백준 C++] 1978번: 소수 찾기  (0) 2024.04.13
[백준 C++] 1934번: 최소공배수  (0) 2024.04.13
[백준 C++] 10430번: 나머지  (0) 2024.04.12
[백준 C++] 17299번: 오등큰수  (0) 2024.04.12
[백준 C++] 17298번: 오큰수  (0) 2024.04.12