题目描述输入两个正整数 xy求出满足下列条件的pq 的个数: pq是正整数。要求 pq以 x 为最大公约数以 y 为最小公倍数。试求:满足条件的所有可能的 pq 的个数。输入格式一行两个正整数 xy。输出格式一行一个数表示求出满足条件的 pq 的个数。样例样例输入 #13 60样例输出 #14c++实现
#include <iostream>
using namespace std;
// 计算最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 计算最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int x, y;
cin >> x >> y;
int count = 0;
// 遍历p的值,p的范围是[1, y / x]
for (int p = 1; p <= y / x; p++) {
// 如果p是x的约数且y是p的倍数
if (x % p == 0 && y % (p * x) == 0) {
count++;
}
}
cout << count << endl;
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/hGeN 著作权归作者所有。请勿转载和采集!