두 수의 최소공배수를 출력하는 문제이다.
근데 이제 값의 범위가 조금 큰.
문제에서 long long 쓰라고 알려줘서 금방 풀었다.
나온김에 자료형 범위 알아보기
int
: -2e9 ~ 2e9
long long
: -9e18 ~ 9e18
unsigned
면 대충 0에서 원래 크기 두배
일단은 요정도만 알아도 선방이라고 맘대로 생각하기
#include <iostream>
using namespace std;
long long gcd(long long a, long long b) {
if (b == 0) return a;
else return gcd(b, a % b);
}
long long lcm(long long a, long long b) {
return a * b / gcd(a, b);
}
int main() {
long long a, b, ans;
cin >> a >> b;
if (a == b) ans = a;
else if (a == 1) ans = b;
else if (b == 1) ans = a;
else {
if (a < b) {
int tmp = a;
a = b;
b = tmp;
}
ans = lcm(a, b);
}
cout << ans;
return 0;
}