为什么判断平方数约数相等时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;
}
求解答