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 |