emmm.....还以为会超时
查看原帖
emmm.....还以为会超时
1368150
c_yanye_w楼主2024/10/30 22:12
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
long long x,y,cnt,tot,d[100005];
int gcd(int a,int b)
{
	if(a<b)
	{
		int t=a;
		a=b;
		b=t;
	}
	while(b)
	{
		int t=a%b;
		a=b;
		b=t;
	}
	return a;
}
int main()
{
	scanf("%lld %lld",&x,&y);
	if(x==y)
	{
		printf("1");
		return 0;
	}
	for(int i=x;i<=y;i++)
	{
		if(i%x==0 && y%i==0)
			d[tot++]=i;
	}
	for(int i=0;i<tot;i++)
	{
		int t;
		for(int j=i;j<tot;j++)
		{
			t=gcd(d[i],d[j]);
			if(t==x && d[i]*d[j]/t==y)
				cnt+=2;
		}
	}
	printf("%lld",cnt);
	return 0;
}
2024/10/30 22:12
加载中...