- 标签:数学、枚举、数论
- 难度:简单
描述:给定两个正整数
要求:返回
说明:
-
公因子:如果
$x$ 可以同时整除$a$ 和$b$ ,则认为$x$ 是$a$ 和$b$ 的一个公因子。 -
$1 \le a, b \le 1000$ 。
示例:
- 示例 1:
输入:a = 12, b = 6
输出:4
解释:12 和 6 的公因子是 1、2、3、6。
- 示例 2:
输入:a = 25, b = 30
输出:2
解释:25 和 30 的公因子是 1、5。
最直接的思路就是枚举所有
当然,因为
class Solution:
def commonFactors(self, a: int, b: int) -> int:
ans = 0
for i in range(1, math.gcd(a, b) + 1):
if a % i == 0 and b % i == 0:
ans += 1
return ans
- 时间复杂度:$O(\sqrt{min(a, b)})$。
- 空间复杂度:$O(1)$。