using ll = long long;
ll gcd(ll a, ll b) {
while (b) {
ll t = b;
b = a % b;
a = t;
}
return a;
}
ll gcdsum() {
ll a, b;
std::cin >> a >> b;
ll g = gcd(a, b), ans = (g==1?1:2);
for (int i = 2; i*i <= g; i++) {
if (g % i == 0) {
if (g / i == i) {
ans++;
}
else {
ans += 2;
}
}
}
return ans;
}
如果i是公因数,那么g/i也是公因数
文章介绍了使用C++编写的函数llgcd计算两个整数的最大公约数,然后在llgcdsum函数中统计并返回1到g的所有公因数,包括1和自身,以及可能的重复因子计数。
2457

被折叠的 条评论
为什么被折叠?



