[C++] 백준 13241. 최소공배수

멋진감자·어제
1

알고리즘

목록 보기
17/20
post-thumbnail

문제

두 수의 최소공배수를 출력하는 문제이다.
근데 이제 값의 범위가 조금 큰.

풀이

문제에서 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;
}

Reference

Visual Studio 2022 데이터 형식 범위

profile
난멋져

0개의 댓글