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

โปรแกรมหาจำนวนค่าตัวประกอบของตัวเลขสองชุด


สมมติว่าเรามีสองอาร์เรย์ที่เรียกว่า nums1 และ nums2 เราต้องหาจำนวนค่าที่ตรงตามเงื่อนไขต่อไปนี้ -

  • องค์ประกอบใน nums1 คือปัจจัยขององค์ประกอบที่เลือก

  • องค์ประกอบที่เลือกเป็นปัจจัยขององค์ประกอบทั้งหมดของ nums2

ดังนั้น หากอินพุตเป็นเหมือน nums1 =[3,9] nums2 =[27, 81] เอาต์พุตจะเป็น 2 เพราะตัวเลขคือ 9 และ 27 เพราะ

  • 9 mod 3 =0

  • 9 mod 9 =0

  • 27 mod 9 =0

  • 81 mod 9 =0

  • 27 mod 3 =0

  • 27 mod 9 =0

  • 27 mod 27 =0

  • 81 mod 27 =0.

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

  • นับ :=0
  • สำหรับผมในช่วง 1 ถึง 100 ทำ
    • flag :=จริง
    • สำหรับแต่ละ j ใน nums1 ทำ
      • ถ้าฉัน mod j ไม่ใช่ 0 แล้ว
        • ธง :=เท็จ
        • ออกมาจากวงจร
    • ถ้าแฟล็กเป็นจริง
      • สำหรับแต่ละ k ใน nums2 ทำ
        • ถ้า k mod i ไม่ใช่ 0 แล้ว
          • ธง :=เท็จ
          • ออกมาจากวงจร
    • ถ้าแฟล็กเป็นจริง
      • นับ :=นับ + 1
  • จำนวนคืนสินค้า

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

def solve(nums1, nums2):
   count = 0
   for i in range(1,101):
      flag = True
      for j in nums1:
         if i%j != 0:
            flag = False
            break
      if flag:
         for k in nums2:
            if k%i!=0:
               flag = False
               break
      if flag:
         count+=1
         return count

nums1 = [3,9]
nums2 = [27, 81]
print(solve(nums1, nums2))

อินพุต

[3,9], [27, 81]

ผลลัพธ์

1