2 条题解

  • 0
    @ 2025-10-11 12:48:45

    摘自25.4.17我的提交 原谅那个时候丑陋的马蜂

    #include <bits/stdc++.h>
    #define int long long 
    using namespace std;
    
    // 求最大公约数
    int gcd(int a, int b) {
        while (b) {
            int temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }
    
    // 求最小公倍数
    int lcm(int a, int b) {
        return a / gcd(a, b) * b;
    }
    
    signed main() {
        int x0, y0;
        cin >> x0 >> y0;
        int cnt = 0;
        for (int p = x0; p <= y0; p++) {
            if ((x0 * y0) % p == 0) {
                int q = (x0 * y0) / p;
                if (gcd(p, q) == x0 && lcm(p, q) == y0) {
                    cnt++;
                }
            }
        }
        cout << cnt << endl;
        return 0;
    }
    

    [NOIP 2001 普及组] 最大公约数和最小公倍数问题

    信息

    ID
    5087
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    154
    已通过
    55
    上传者