#include <bits/stdc++.h>

using namespace std;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n; cin >> n;
    long long a, b;
    long long GCD, LCM;
    for (int i = 0; i < n; i++) {
        cin >> a >> b;
        GCD = __gcd(a, b);
        LCM = a * b / GCD;
        cout << LCM << '\n';
    }
}


이거 LCM 구하는 코드


a, b는 100만 이하의 자연수만 입력되는데 


a, b를 int로 하면 오버플로가 나서 음수결과가 나옴


LCM은 int범위를 넘는다 쳐도 a, b 자체는 int범위 안인데도 int로 선언해버리면 오버플로를 발생시키는게 이해가 안되는데


이건 무슨 원리인지 잘 모르겠음...