본문 바로가기
[백준]

[BaekJoon/백준] 2609번

by Hevton 2021. 2. 27.
반응형

최소공배수 , 최대공약수를 찾으라는 문제.

 

최소공배수를 위한 방법으로는 '유클리드 호제법'을 이용하면 된다.

 

유클리드 호제법

(A, B)의 최대공약수는 (B, A % B)의 최대공약수와 같다. 이 과정의 반복 속에 나머지가 0이 되었을 때, 나누는 수가 두 수의 최대공약수다.

 

 

그리고

최소공배수 = A * B / 최대공약수  이다.

(궁금하다면, 두 수의 최대공약수-최소공배수를 직접 풀어보는 과정을 갖게 되면 알 수 있다.)

 

이를 코드로 짜면

#include <stdio.h>

int x, y;
int G, L; // GCD, LCM

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

int main() {
    scanf("%d %d", &x, &y);
    
    G = gcd(x, y);
    
    L = x * y / G;
    
    printf("%d %d", G, L);
}
반응형

'[백준]' 카테고리의 다른 글

[BaekJoon/백준] 2981번  (0) 2021.03.01
[BaekJoon/백준] 1934번  (0) 2021.02.27
[BaekJoon/백준] 1037번  (0) 2021.02.27
[BaekJoon/백준] 5086번  (0) 2021.02.27
[BaekJoon/백준] 13305번 그리디 알고리즘 | 복습 1회 완료  (0) 2021.02.21