Skip to content

Problem C: 长存

📝 题目描述

给定 \(x\)\(y\) ,令 $ a \sqrt{b} = \sqrt{\frac{lcm(x, \, y)}{gcd(x, \, y)}} $ 求 \(ab\) 最大值

🔑 关键

公式推导

💡 思路分析

看到根号就想去掉,即 \(a^2 b = \frac{lcm(x, \, y)}{gcd(x, \, y)}\)

\(ab = \frac{lcm(x, \, y)}{a \times gcd(x, \, y)}\)

\(\frac{lcm(x, \, y)}{gcd(x, \, y)}\) 为定值,自然 \(a\) 越小 \(ab\) 越大

\(a > 0\)\(a \in Z\) 所以当 \(a = 1\)\(ab\) 最大

🖥️ 代码实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>

#define endl "\n"

using namespace std;

long long gcd(long long a, long long b) {
    if (b == 0) return a;
    return gcd(b, a % b);
}

long long lcm(long long a, long long b) {
    return a * b / gcd(a, b);
}

void solve() {
    int x, y;
    cin >> x >> y;
    cout << 1 << " " << lcm(x, y) / gcd(x, y) << endl;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int T;
    cin >> T;
    while (T--) solve();

    return 0;
}   

⏱️ 复杂度分析

📚 拓展