You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
680 B
C++

#include <cmath>
#include <cstdio>
int a0, a1, b0, b1;
inline int gcd(int a, int b)
{
int t;
while (b) t = a % b, a = b, b = t;
return a;
}
#define lcm(a, b) ((a) / gcd((a), (b)) * (b))
int main()
{
int n;
scanf("%d", &n);
for (int _ = 0, cnt = 0; _ < n; _++, cnt = 0)
{
scanf("%d%d%d%d", &a0, &a1, &b0, &b1);
for (int x = int(sqrt(b1)); x; x--)
if (b1 % x == 0)
{
if (gcd(x, a0) == a1 && lcm(x, b0) == b1) cnt++;
if (x * x != b1 && gcd(b1 / x, a0) == a1 && lcm(b1 / x, b0) == b1) cnt++;
}
printf("%d\n", cnt);
}
return 0;
}