본문 바로가기
Study (etc)/Problem Solving

[BOJ / c++] 2609번 : 최대공약수와 최소공배수

by Haren 2022. 5. 5.

문제

두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.

출력

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

Solved.ac 레벨

실버 V

풀이

#include <bits/stdc++.h>

using namespace std;

int gcd(int a, int b){
    if(b == 0)
        return a;
    else 
        return gcd(b, a%b);
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int num1, num2;
    cin >> num1 >> num2;

    int lcm  = (num1 * num2) / gcd(num1, num2);

    cout << gcd(num1, num2) << '\n' << lcm << '\n';

    return 0;

}
 

2609번: 최대공약수와 최소공배수

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

www.acmicpc.net