본문 바로가기
Develop/백준 (Cpp)

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

by Tarra 2023. 2. 3.

10984번: 내 학점을 구해줘


문제 )

두 정수 a와 b 최소공배수는 두 수의 공통된 배수 중 가장 작은 수이고, 최대공약수는 두 수의 공통된 약수중 가장 큰 수이다.

a와 b가 주어졌을 때, 최소공배수와 최대공약수를 구하는 프로그램을 작성하시오.

 

입력 :

첫째 줄에 테스트 케이스의 개수 T(1<=T<=1,000)가 주어진다. 각 테스트 케이스는 두 정수 a와 b로 이루어져 있고, 공백으로 구분되어 있다. (1 <= a,b <= 1,000)

 

 

 

출력 :

각 테스트 케이스에 대해 최소공배수와 최대공약수를 차례대로 출력한다.

 

 

 

 

풀이)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
using namespace std;
 
int main()
{
    // 다른 C++ 답안보다 속도가 느려서 입출력이 문제인가 싶어 넣어봄.
    cin.tie(NULL);
    cin.sync_with_stdio(false);
 
    int n;
    cin >> n;
 
    for (int i = 0; i < n; i++) {
        int GCD = 1;
        int a, b;
        cin >> a >> b;
        for (int j = 1; j <= a; j++) {
            if (a % j == 0 && b % j == 0) {
                GCD = j;
             }
        }
 
        int LCM = a * b / GCD;
 
        cout << LCM << " " << GCD << "\n";
    }
 
    return 0;
}
 
cs

출처 : https://www.acmicpc.net/problem/2702 

 

2702번: 초6 수학

첫째 줄에 테스트 케이스의 개수 T(1<=T<=1,000)가 주어진다. 각 테스트 케이스는 두 정수 a와 b로 이루어져 있고, 공백으로 구분되어 있다. (1 <= a,b <= 1,000)

www.acmicpc.net