개발자 뺚

[BAEKJOON ONLINE JUDGE] 2609번 : 최대공약수와 최소공배수 본문

Solution/C

[BAEKJOON ONLINE JUDGE] 2609번 : 최대공약수와 최소공배수

2023. 8. 19. 01:00

시간 제한 : 1 초

 

메모리 제한 : 128 MB

 

문제

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

 

입력

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

 

출력

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


#include<stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    int k = a * b;
    
    int cmt = 0;
    if (a < b){
        cmt = a;
        a = b;
        b = cmt;
    }
    
    while (a % b != 0) {
        cmt = b;
        b = a % b;
        a = cmt;
    }
    
    printf("%d\n%d", b, k / b);
    
    return 0;
}