4 条题解

  • 0
    @ 2024-4-10 21:42:51

    #include<bits/stdc++.h> using namespace std; int main() { long long n,s = 0; cin >> n; for(long long a = 1;a * a * a <= n;a++) {

    for(long long b = a;a * b * b <= n;b++) { if(b <= n / (a * b)) {//左边界必须小于右边界 s += (n / (a * b) - b + 1);//s += (n / (a * b) - b + 1);

    // 这行代码计算了在当前 a 和 b 的条件下,C 可以取的值的数量。

    //n / (a * b) 是 C 的最大可能值,b - 1 是 C 的最小可能值(因为 B 必须大于 A),所

    //以 n / (a * b) - b + 1 就是 C 可以取的所有整数值的数量。这个值被累加到 s 上。 } } } cout << s; }

    信息

    ID
    79
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    905
    已通过
    120
    上传者