주소 : https://www.acmicpc.net/problem/2609
2609번: 최대공약수와 최소공배수
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
www.acmicpc.net
소스 코드 :
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int max1(int a, int b)
{
int max = 0;
if (a == b)
max = a;
else
{
for (int i = 1;i < 10000;i++)
{
if (a % i == 0 && b % i == 0)
max = i;
}
}
return max;
}
int min1(int a, int b,int max)
{
int min = 0;
if (a == b)
min = a;
else
min = max * (a / max) * (b / max);
return min;
}
int main()
{
int a, b = 0;
int temp = 0;
int max, min = 0;
cin >> a >> b;
if (a < b)
{
temp = a;
a = b;
b = temp;
}
if (a == 1 || b == 1)
{
max = 1;
min = a * b;
}
else
{
max = max1(a, b);
min = min1(a, b, max);
}
cout << max << endl << min;
return 0;
}
마무리 : 최대공약수는 입력된 두 수가 나누어 떨어짐과 동시에 큰 수이어야하고 최소공배수는 최대공약수를 이용하여 입력된 두 수가 최대공약수를 나눌 때 나오는 몫과 최대공약수를 곱하면 된다. 수학 문제이기 때문에 어려운 문제는 아니다.
'백준 > C++' 카테고리의 다른 글
백준 1978번 : 소수 찾기 [C++] (0) | 2022.08.07 |
---|---|
백준 1436번 : 영화감독 숌 [C++] (0) | 2022.08.07 |
백준 1181번 : 단어 정렬 [C++] (0) | 2022.08.05 |
백준 10989번 : 수 정렬하기 3 [C++] (0) | 2022.08.05 |
백준 2775번 : 부녀회장이 될테야 [C++] (0) | 2022.08.04 |