Taene's
[백준] Class2-최대공약수와 최소공배수 C++ 2609번 본문
문제
두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.
출력
첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.
예제 입력 1 복사
24 18
예제 출력 1 복사
6
72
소스코드:
#include <iostream>
#include <string>
#include <vector>
#include <math.h>
using namespace std;
int main()
{
int a, b;
int max = 0; //최대공약수
int k = 0;
vector<int> aArr; //a의 약수 배열
vector<int> bArr; //b의 약수 배열
cin >> a >> b;
for (int i = 1; i <= a; i++) //a의 약수
{
if (a % i == 0)
{
aArr.push_back(i);
}
}
for (int i = 1; i <= b; i++) //b의 약수
{
if (b % i == 0)
{
bArr.push_back(i);
}
}
for (int i = 0; i < aArr.size(); i++)
{
for (int j = 0; j < bArr.size(); j++)
{
if (aArr[i] == bArr[j])
{
if (aArr[i] > max)
max = aArr[i];
}
}
}
k = (a / max) * (b / max) * max;
cout << max << "\n" << k;
}
'백준 > Class2' 카테고리의 다른 글
| [백준] Class2-달팽이는 올라가고 싶다 C++ 2869번 (0) | 2023.08.29 |
|---|---|
| [백준] Class2-부녀회장이 될테야 C++ 2775번 (0) | 2023.08.29 |
| [백준] Class2-평균 C++ 1546번 (0) | 2023.08.29 |
| [백준] Class2-팰린드롬수 C++ 1259번 (0) | 2023.08.28 |
| [백준] Class2-Hashing C++ 15829번 (0) | 2023.08.27 |