1 条评论

  • @ 2025-5-11 17:52:25

    #include #include #include

    using namespace std;

    // 计算最大公约数 int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; }

    // 计算满足条件的(P, Q)的个数 int countPairs(int x0, int y0) { if (y0 % x0 != 0) { return 0; } int k = y0 / x0; if (k == 1) { return 1; } // 计算k的不同质因数的个数 int count = 0; int temp = k; for (int i = 2; i * i <= temp; ++i) { if (temp % i == 0) { ++count; while (temp % i == 0) { temp /= i; } } } if (temp > 1) { ++count; } return 1 << count; // 2^count }

    int main() { int x0, y0; cin >> x0 >> y0; cout << countPairs(x0, y0) << endl; return 0; }

    • 1

    信息

    ID
    798
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    (无)
    递交数
    89
    已通过
    26
    上传者