백준 알고리즘

(백준 c++)2609 최대 공약수와 최소 공배수

naeunchan 2021. 3. 17. 11:35
728x90
반응형

문제

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

입력

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

출력

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

 

 

eunchanee.tistory.com/29

 

(프로그래머스 c++)최대 공약수와 최소 공배수

int형 변수 n과 m의 최대 공약수와 최소 공배수를 각각 answer에 넣어주면 된다..! 최대 공약수를 구하는 gcd() 함수와 최소 공배수를 구하는 lcm() 함수를 정의하여 사용한다. 이때, lcm() 함수에서는 gcd

eunchanee.tistory.com

프로그래머스 문제와 동일하다.

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int gcd(int a, int b){
    int c;

    while(b != 0){
        c = a % b;
        a = b;
        b = c;
    }

    return a;
}

int lcm(int a, int b){
    return a * b / gcd(a, b);
}

int main(void){
    int a, b;
    int ans1 = 0, ans2 = 0;

    cin >> a >> b;

	ans1 = gcd(a, b);
	ans2 = lcm(a, b);
	
    cout << ans1 << "\n" << ans2;

    return 0;
}
728x90
반응형