Search
Duplicate
📕

LCM

주차
문제번호
5347
언어
C++
티어
실버
유형
수학
정수론
유클리드 호제법
nj_Blog
nj_상태
이해도
33%
풀이
사람
이해도 2
13 more properties

문제접근

놓쳤던 부분

long long을 넘는건 잘 파악했는데 answer에만 long long을 하여 중간에 오버플로우 있었던듯
최대공약수는 유클리드 호제법 사용, 최소공배수는 두수의 곱 / 두 수의 최대공약수

코드

2020 KB

0 ms

#include <iostream> #include <algorithm> using namespace std; long long gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } int main(void) { long long a, b; int big, small; int n; long long answer; ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; for (int i = 0; i < n; i++) { cin >> a >> b; big = max(a, b); small = min(a, b); answer = a * b / gcd(big, small); cout << answer << "\n"; } return (0); }
C++
복사