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

โปรแกรมค้นหาปัจจัยร่วมสูงสุดของรายการองค์ประกอบใน Python


สมมติว่าเรามีรายการองค์ประกอบที่เรียกว่า nums เราต้องหาค่าบวกที่ใหญ่ที่สุดที่หารจำนวนเต็มแต่ละตัว

ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[15, 81, 78] ผลลัพธ์จะเป็น 3 เนื่องจาก 3 เป็นจำนวนเต็มที่มากที่สุดที่หารทั้งหมด 15, 81 และ 78

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ถ้าขนาดของตัวเลขเท่ากับ 1 แล้ว

    • ส่งคืนหมายเลข[0]

  • div :=gcd ของ nums[0] และ nums[1])

  • ถ้าขนาดของ nums เท่ากับ 2 แล้ว

    • ส่งคืน div

  • สำหรับฉันในช่วง 1 ถึงขนาด nums - 2 ทำ

    • div :=gcd ของ 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