Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm nhân tử chung cao nhất của danh sách các phần tử trong Python

Giả sử chúng ta có một danh sách các phần tử được gọi là num, chúng ta phải tìm giá trị dương lớn nhất chia cho mỗi số nguyên.

Vì vậy, nếu đầu vào là nums =[15, 81, 78], thì đầu ra sẽ là 3, vì 3 là số nguyên lớn nhất chia cho tất cả 15, 81 và 78.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu kích thước của nums bằng 1, thì

    • trả về số [0]

  • div:=gcd trong số nums [0] và nums [1])

  • nếu kích thước của nums bằng 2, thì

    • trả về div

  • đối với tôi trong phạm vi từ 1 đến kích thước của nums - 2, thực hiện

    • div:=gcd của div và nums [i + 1]

    • nếu div giống 1 thì

      • trả về div

  • trả về div

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn

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))

Đầu vào

[15, 81, 78]

Đầu ra

3