반응형
https://www.acmicpc.net/problem/1934
최소공배수를 구하는 문제였습니다.
📕 풀이방법
1. 두 수의 최대공약수를 구합니다. 이 값을 GCD라고 정의합니다.
2. LCM = A / GCD * B / GCD * GCD의 공식이 성립합니다. 이를 구해 출력합니다.
📕 Code
#include <iostream>
using namespace std;
int GCD(int a,int b)
{
if (b > a)
return GCD(b,a);
if (b == 0)
return a;
return GCD(b, a%b);
}
int main() {
int A, B, T, gcd;
cin >> T;
for (int i = 0; i < T; i++)
{
cin >> A >> B;
gcd = GCD(A, B);
if (GCD(A, B) == 1)//최대공약수가 1이라면
cout << A*B << '\n';
else
cout << gcd * (A / gcd) * (B / gcd) << '\n';
}
}
'Algorithm' 카테고리의 다른 글
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2530번:인공지능 시계 답 (0) | 2016.11.24 |
---|---|
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2920번:음계 답 (0) | 2016.11.24 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 1550번:16진수 답 (0) | 2016.11.23 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 3047번:ABC 답 (0) | 2016.11.23 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 10214번:Baseball 답 (0) | 2016.11.22 |