比赛 板子大赛 评测结果 AAAAAAAAAA
题目名称 最大公约数和最小公倍数问题 最终得分 100
用户昵称 喵喵喵 运行时间 0.037 s
代码语言 C++ 内存使用 3.28 MiB
提交时间 2025-01-22 10:25:51
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
unsigned long long int x,y,m;
unsigned long long int cnt = 0;
int main()
{
	freopen("gcdpro.in","r",stdin);
	freopen("gcdpro.out","w",stdout);
	cin >> x >> y;
	m = x * y;
	unsigned long long int l = sqrt(m);
	for(unsigned long long int i = 1;i < l;i++)
	{
		if(m % i == 0)
		{
			unsigned long long int j = m / i;
			if(__gcd(i,j) == x) cnt++;
		}
	}
	if(m % l == 0)
	{
		unsigned long long int j = m / l;
		if(__gcd(l,j) == x) cout << cnt * 2 + 1;
		else cout << cnt * 2 << endl;
	}
	else cout << cnt * 2 << endl;
	return 0;
}