bushi为啥90
查看原帖
bushi为啥90
1412938
A7F3jK9pR0xf_楼主2024/9/24 22:22

TLE了一个点 为啥啊

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
inline int gcd(int a, int b)
{
	return b == 0 ? a : gcd(b, a % b);
}
inline ll lcm(int a, int b)
{
	return 1ll * a / gcd(a, b) * b;
}
int a0, a1, b0, b1;
inline bool chk(ll x)
{
	return gcd(a0, x) == a1 && lcm(b0, x) == b1;
}
int main()
{
	
	int n;
	scanf("%d", &n);
	while(n--)
	{
		scanf("%d%d%d%d", &a0, &a1, &b0, &b1);
		/*
		a1 = gcd(a0, x)
		b1 = lcm(b0, x)
		*/
		int cnt = 0;
		for(ll x = 1;x <= b1 / x;++x)
		{
			if(b1 % x == 0)
			{
				if(chk(x))
					cnt++;
				if(b1 / x != x && chk(b1 / x))
					cnt++;
			}
		}
		printf("%d\n", cnt);
	}
	return 0;
}
2024/9/24 22:22
加载中...