ให้ลิสต์ nums หาตัวหารร่วมมาก (GCD) ของทุกตัว
ตัวอย่าง: nums=[15,81,78] → 3
ขั้นตอน (Iterative GCD)
- ถ้า
len(nums)==1: คืนnums[0] div = gcd(nums[0], nums[1])- ถ้า
len(nums)==2: คืนdiv - วน
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