본문 바로가기
카테고리 없음

13241번: 최소공배수

by 꼬부기가우는소리 2023. 6. 19.
728x90

 

- 관련 사이트: https://www.acmicpc.net/problem/13241

 

13241번: 최소공배수

정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다

www.acmicpc.net

 

자연수 A와 B의 최소공배수를 구하는 문제이다.

"1934번: 최소공배수" 문제와 동일하지만, 유클리드 호제법으로 최대공약수를 구해야 한다는 조건이 있다.

"1934번: 최소공배수의 두번째 풀이를 적용해주면 된다.

 

1) 유클리드 호제법을 이용하여 A, B 두 수의 최대공약수 확인

3) (A * B) / 최대공약수 = 최소공배수

 

#include <iostream>
using namespace std;

long long int getGCD(long long int A, long long int B)
{
    return B ? getGCD(B, A % B) : A;
}

int main()
{
    long long int A, B;
    cin >> A >> B;
    cout << (A * B) / getGCD(A, B) << "\n";
    return 0;
}

 

* 연관 문제:

- [프로그래머스] N개의 최소공배수

- [백준] 1934번: 최소공배수

댓글