用 Python 编写程序计算两个数的公约数数量


假设我们有两个数 a 和 b。我们必须计算有多少个正整数是 a 和 b 的公约数。

因此,如果输入类似 a = 288 b = 240,那么输出将为 10,因为公约数为 [1,2,3,4,6,8,12,16,24,48]。

为了解决这个问题,我们将按照以下步骤进行操作 −

  • res := 0
  • 对于从 1 到 gcd(a, b) + 1 的范围中的 i,执行
    • 如果 (a 除以 i) 为 0 且 (b 除以 i) 为 0,那么
      • res := res + 1
  • 返回 res

示例

让我们看看以下实现,以便更好地理解 −

from math import gcd

def solve(a, b):
   res = 0
   for i in range(1, gcd(a,b)+1):
      if (a % i) == 0 and (b % i) == 0:
         res += 1
   return res

a, b = 288, 240
print(solve(a, b))

输入

288, 240

输出

10

更新于: 2021 年 10 月 12 日

562 次浏览

职业 起步

完成课程获得认证

开始学习
广告