记录编号 177006 评测结果 AAAAAAAAAA
题目名称 [NOIP 2001]最大公约数和最小公倍数问题 最终得分 100
用户昵称 Gravatar啊吧啦吧啦吧 是否通过 通过
代码语言 C++ 运行时间 0.020 s
提交时间 2015-08-10 17:05:21 内存使用 0.28 MiB
显示代码纯文本
#include <iostream>
#include <fstream>

using namespace std;

int x0, y0, ans = 0, yx;
long long xy;
inline int gcd(int, int);
ifstream fin("gcdpro.in");
ofstream fout("gcdpro.out");
#define cin fin
#define cout fout

main()
{
//	gcd(P, Q) * lcm(P, Q) = P * Q
	int p, q;
	cin >> x0 >> y0;
	
	xy = (long long)x0 * y0;
	yx = y0 / x0;
	for (p = x0; p <= y0; p += x0){
		if (xy % p)
			continue;
		q = xy / p;
		if (q % x0)
			continue;
		if (gcd(p, q) == x0)
			ans++;
	}
	
	cout << ans;
//	for(;;);
}

inline int gcd(int x, int y){
	int r;
	while (x % y){
		r = x % y;
		x = y;
		y = r;
	}
	return y;
}