Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาตัวหารร่วมมาก (HCF/GCD) ของลิสต์ตัวเลขใน Python

ให้ลิสต์ nums หาตัวหารร่วมมาก (GCD) ของทุกตัว

ตัวอย่าง: nums=[15,81,78] → 3

ขั้นตอน (Iterative GCD)

  1. ถ้า len(nums)==1: คืน nums[0]
  2. div = gcd(nums[0], nums[1])
  3. ถ้า len(nums)==2: คืน div
  4. วน i=1..len(nums)-2: div = gcd(div, nums[i+1]) ถ้า div==1 หยุดทันที

ตัวอย่างโค้ด

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))  # Output: 3

อินพุต

[15, 81, 78]

เอาต์พุต

3