
要找两个正整数 a 和 b 的 公因子的数目,我们可以按照以下步骤来解决问题:
✅ 步骤说明:
-
求 a 和 b 的最大公约数(GCD)
所有的公因子一定是 GCD 的因子。 -
统计 GCD 的因子个数
枚举1到√GCD,找出能整除它的数,同时成对统计因子个数。
✏️ Python 示例代码:
import math
def common_factors(a: int, b: int) -> int:
gcd = math.gcd(a, b)
count = 0
for i in range(1, int(gcd**0.5) + 1):
if gcd % i == 0:
count += 1 # i 是因子
if i != gcd // i:
count += 1 # gcd // i 是另一个因子
return count
🔍 举个例子:
假设 a = 12,b = 18
-
gcd(12, 18) = 6 -
6的因子是1, 2, 3, 6 -
所以返回值是
4

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



