一个小疑问
查看原帖
一个小疑问
479250
mons楼主2022/8/18 17:06

为什么判断平方数约数相等时continue写中间可AC,但计数器--写下面只能得60分?

#include <iostream>

using namespace std;

long long n, a0, a1, b0, b1, cc;

long long Gcd(long long a, long long b)
{
    if (!b) return a;
    return Gcd(b, a % b);
}

long long Lcm(long long a, long long b)
{
    return a * b / Gcd(a, b);
}

int main()
{
    cin >> n;
    while (n--)
    {
        cc = 0;
        cin >> a0 >> a1 >> b0 >> b1;
        for (long long j = 1; j * j <= b1; j++)
        {
            if (!(b1 % j))
            {
                long long j2 = b1 / j;
                if (Gcd(j, a0) == a1 && Lcm(j, b0) == b1) cc++;
                if (j == j2) continue;//这里
                if (Gcd(j2, a0) == a1 && Lcm(j2, b0) == b1) cc++;
                //if(j == j2) cc-- 还有这
            }
        }
        cout << cc << endl;
    }
    return 0;
}

求解答

2022/8/18 17:06
加载中...