728x90
문제
정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 당신은 두 수에 대하여 최소공배수를 구하는 프로그램을 작성 하는 것이 목표이다.
입력
한 줄에 두 정수 A와 B가 공백으로 분리되어 주어진다.
50%의 입력 중 A와 B는 1000(103)보다 작다. 다른 50%의 입력은 1000보다 크고 100000000(108)보다 작다.
추가: 큰 수 입력에 대하여 변수를 64비트 정수로 선언하시오. C/C++에서는 long long int를 사용하고, Java에서는 long을 사용하시오.
출력
A와 B의 최소공배수를 한 줄에 출력한다.
#include <iostream>
using namespace std;
int gcd(long long int a, long long int b){ // 유클리드 알고리즘
if(a<b){
long long int tmp = a;
a = b; b = tmp;
}
long long int r = a%b;
if(r==0){
return b;
}else{
return gcd(b,r);
}
}
int main() {
long long int a,b; cin>>a>>b; // 문제의 조건에 맞게 long long int 사용
long long int result = gcd(a,b); // 최대공약수를 구함
long long int ret = result;
ret *= (a/result);
ret *= (b/result); // 최대공약수를 구함
cout<<ret<<endl;
return 0;
}
반성해라!! 연말이라고 놀러다니다가 잔디 쭉 밀렸다 ... !!!! 언제까지 gcd만 풀거냐 !!!
728x90
반응형
'Boj' 카테고리의 다른 글
[Boj] 백준 C++ #2981 검문 (0) | 2024.01.10 |
---|---|
[Boj] 백준 C++ #1991 트리 순회 (0) | 2024.01.05 |
[Boj] 백준 C++ #3036 링 (1) | 2023.12.23 |
[Boj] 백준 C++ #1735 분수 합 (1) | 2023.12.22 |
[Boj] 백준 C++ #9613 GCD합 (2) | 2023.12.22 |