用 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 次瀏覽

職業 起步

完成課程獲得認證

開始學習
廣告