Python 中查詢一系列元素的最大公因子程式


假設我們有一個名為 nums 的元素列表,我們需要找到能將整數中的每一個都整除的最大正值。

因此,如果輸入為 nums = [15, 81, 78],則輸出為 3,因為 3 是可以整除所有 15、81 和 78 的最大整數。

為了解決這個問題,我們需要遵循以下步驟 −

  • 如果 nums 的大小與 1 相同,則

    • 返回 nums[0]

  • div := nums[0] 和 nums[1] 的最大公約數

  • 如果 nums 的大小與 2 相同,則

    • 返回 div

  • 對於 1 到 nums 大小減 2 之間的 i,執行

    • div := div 和 nums[i + 1] 的最大公約數

    • 如果 div 與 1 相同,則

      • 返回 div

  • 返回 div

示例

讓我們看看以下實現來獲得更好的理解

from math import gcd
def solve(nums):
   if len(nums) == 1:
      return nums[0]

   div = gcd(nums[0], nums[1])

   if len(nums) == 2:
      return div

   for i in range(1, len(nums) - 1):
      div = gcd(div, nums[i + 1])
      if div == 1:
         return div

return div

nums = [15, 81, 78]
print(solve(nums))

輸入

[15, 81, 78]

輸出

3

更新於:2021 年 10 月 11 日

4 千 + 瀏覽次數

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.