第一题:
unsigned long long gcd(unsigned long long x, unsigned long long y) {
    if (x < y)
        swap(x, y);
    if (x % y == 0)
        return y;
    return gcd(y, x % y);
}

int main() {
    unsigned long long x, y;
    cin >> x >> y;
    unsigned long long a = gcd(x, y);
    cout << a << ' ' << x / a * y << endl;

    system("pause");
    return 0;
}