求助【第二个点是什么东西?】
查看原帖
求助【第二个点是什么东西?】
323989
Vector_Mingfan楼主2020/7/28 14:11
#include <iostream>
#include <cstdio>

#define ll long long

using namespace std;

ll t , x0 , x1 , y0 , y1 , cnt = 0;

ll gcd(ll x , ll y)
{
	return y ? gcd(y , x % y) : x;
}

ll l(ll x , ll y)
{
	return x / gcd(x , y) * y;
}

int main()
{
	scanf("%lld",&t);
	
	while(t--)
	{
		cnt = 0;
		
		scanf("%lld %lld %lld %lld",&x0,&x1,&y0,&y1);
		
		for (ll i=1; i<=y1 / i; i++)
		{
			if (y1 % i == 0)
			{
				if (gcd(i , x0) == x1 and l(i , y0) == y1)cnt++;
				
				if (y1 / i != i)//判重
				{
					if (gcd(y1 / i , x0) == x1 and l(y1 / i , y0) == y1)cnt++;
				}
			}
		}
		
		printf("%lld\n",cnt);
	}
	
	return 0;
}

2020/7/28 14:11
加载中...